• Всем привет. Столкнулся с проблемой. Вывожу данные по произвольному полю через данный код:

     $value_names = ['analyst',
    'analyst oversmart',
    'smartland verysmart',
    'analyst verysmart undersmart',
    ] // Пример значений
    
            'meta_query' => array(
                    array(
                        'key' => 'key_text',
                        'value' => $value_names,
                    ),
                ),

    key_text — произвольное поле.

    $value_names — значение.

    Как сделать чтобы выводились не все записи $value_names, а записи в которых совпадает первое слово $value_names.

    т.е. результат должен быть таким: analyst, analyst oversmart, analyst verysmart undersmart

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Охрана, отмена! 🙂
    Не обратил внимания, что на входе массив.

    • Ответ изменён 5 лет, 11 месяцев назад пользователем Юрій.

    ‘value’ должен быть строкой.

    $value = 'analyst';
    

    Тогда должно по идее сработать

    
         'meta_query' => array(
                    array(
                        'key' => 'key_text',
                        'value' => "$value %",
                        'compare' => 'LIKE',
                    ),
                ),
    
      'meta_query' => array(
                    array(
                        'key' => 'key_text',
                        'value' => "$value %",
                        'compare' => 'LIKE',
                    ),
                ),

    Не работает.
    У меня такой код:

    $value_names = get_post_meta( $post->ID, 'key_text', true );
     'meta_query' => array(
                    array(
                        'key' => 'key_text',
                        'value' => $value_names,
                    ),
                ),

    Где в $value_names например такие значения:
    $value_names = ['analyst', 'analyst oversmart', 'smartland verysmart', 'analyst verysmart undersmart']

    • Ответ изменён 5 лет, 11 месяцев назад пользователем aleks.

    Юрий спасибо большое. Правильный код:

    $value_names = get_post_meta( $post->ID, 'key_text', true );
    $perv_znach = strstr($value_names , ' ', true);
     'meta_query' => array(
                    array(
                        'key' => 'key_text',
                        'value' => $perv_znach,
                        'compare' => 'LIKE',
                    ),
                ),

    Спасибо

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тема «Как в WP_Query вывести по первому слову значения произвольного поля?» закрыта для новых ответов.