anarita
  • 0
Новичок

Получить плагин шорткода сообщений и мета_запрос?

  • 0

Я использую плагин Get Posts для отображения сообщений с типом сообщения «проект». Я хочу отфильтровать список по двум настраиваемым полям: год (например, 2006) и состояние (например, завершено). Я добавил meta_query к get_post аргументам плагина и попробовал шорткод:

[get_posts post_type="project" meta_query="array(array('key' => 'state', 'value' => 
'Completed'),array('key' => 'year','value' => '2006'))" suppress_filters="false"]

Это не работает, хотя я могу заставить работать как «штат», так и «год» самостоятельно, используя meta_key и meta_value .

Может ли кто-нибудь поставить меня в правильном направлении?

Share
  1. Помимо того, что плагин не обновляется, это не сработает, потому что аргумент meta_query оценивается как строка:

    array(3) {
      ["post_type"] => string(7) "project"
      ["meta_query"] => string(96) "array(array('key' => 'state', 'value' => 
    'Completed'),array('key' => 'year','value' => '2006'))"
      ["suppress_filters"] => string(5) "false"
    }
    

    Я предлагаю вам создать собственный шаблон страницы, в котором вы будете напрямую вызывать get_posts() с нужным мета_запросом.

    Вам нужно будет скопировать код, который обрабатывает фактический список сообщений.

    • 0
  2. Я не думаю, что плагин был обновлен для поддержки новых аргументов запроса или, в частности, в этом случае, meta_query arg.

    На странице плагина указана совместимость до версии 3.0.5, и, если я правильно помню, meta_query она была представлена ​​в версии 3.1, поэтому, естественно, я бы сделал вывод, что поддержка пока недоступна.

    Могу ошибаться, просто соединяю точки..

    • 0
  3. Плагин использует shortcode_atts для ограничения списка принимаемых аргументов:

    http://plugins.trac.wordpress.org/browser/nurelm-get-posts/tags/0.3/get-posts.php#L29

    meta_query нет в этом списке. Я бы предложил разветвить плагин или попросить автора обновить его, чтобы разрешить мета-запросы.

    • 0

Оставить ответ

You must login to add an answer.