Как написать запрос WordPress при наличии нескольких значений в пользовательском поле

#wordpress #advanced-custom-fields

#wordpress #дополнительно-пользовательские-поля

Вопрос:

У меня есть пользовательский тип записи WordPress с пользовательскими полями. Изначально требовалось, чтобы каждое сообщение имело только один pin-код «Say example» 1001, и все сообщения с пользовательскими полями имеют 1001, которые необходимо извлечь. Я использовал аргументы запроса как

 <?php
 $args = array(
 'post_type'=> array('sales'),
 'posts_per_page' => -1,
 'meta_key'=> 'pin',
 'meta_value'=> $pin
 );
 query_posts( $args );                      
?>   
  

Теперь у меня может быть несколько zip-файлов в одном пользовательском поле.

https://www.dropbox.com/s/pk53z23jbfj8p2t/zipcode.png?dl=0

Как нужно изменить запрос, чтобы, если введенный zip-файл соответствовал какому-либо элементу в поданном файле, отображалась запись.

Так, например, пользовательское поле имеет значения 63001,63002,63003 и так далее. Итак, если пользователь вводит 63002, должны отображаться все записи с 63002 в пользовательском поле.

Комментарии:

1. Если у вас есть код, пожалуйста, поделитесь для лучшего понимания.

Ответ №1:

Попробуйте ниже:

  $args = array(
    'post_type'=> array('sales'),
    'posts_per_page' => -1,
    'meta_query' => array( array(
       'key'=> 'pin',
       'value'=> ','.$pin.',',
       'compare'=> 'LIKE'
    ) )
 );
 query_posts( $args );
  

Комментарии:

1. привет @jayadip, он работает, но возвращает только 1 результат, даже если есть несколько сообщений. Я отлаживаю его. У вас есть какое-либо представление о том, в чем проблема. Спасибо, приятель, за твою помощь.

2. Мне кажется, что это не сработало бы, если бы $pin было первое или последнее значение в списке pin s.

Ответ №2:

попробуйте обновить мета-значение post в типе json с помощью json_encode и получить его с помощью json_decode