Intereting Posts
Действия или фильтры запускаются, когда данные сохраняются в пользовательской таблице Автоматическое обновление загружаемых файлов WordPress Как добавить div или изменить li в подменю menu_nav Установить изображение для архивных шаблонов Как вам потребуется и автоматически загружать зависимые плагины? apply_filters ('the_content', $ content) vs do_shortcode ($ content) Nginx WordPress и другая структура URL-адреса веб-приложения Get_Posts по проверенному ящику Meta_Key Как создать пользовательский тип публикации закладок? Внешний RSS-канал для WordPress Portfolio Могу ли я использовать отношение OR для одного элемента при вызове tax_query из WP_Query и использовать AND для остальных? Установка WordPress только для отдельной страницы – «mydomain.com/blog» Загрузка сценария детской темы после сценариев плагинов Как включить прокрутку переполнения таблицы? (особенно таблица списка заказов) Мой сайт не работает из-за этого: Неустранимая ошибка: не удается redeclare be_themes_contact_authentication

Фильтрация сообщений посредством метаданных

Я хочу отфильтровать сообщения таким образом, чтобы get_post_meta($post->ID, "project_cat", true) только сообщения, для которых get_post_meta($post->ID, "project_cat", true) (он возвращает идентификатор сообщения), равно моему указанному значению.

Любой способ сделать это?

Мне особенно интересны способы сделать это совместимым с плагином WP-Paginate .

Объект WP_Query принимает метатег post. Вообще говоря, вы хотите сделать следующее:

  $my_query = new WP_Query( array( 'post_type' => 'post', 'meta_query' => array( array( 'key' => 'project_cat', 'value' => 'my-value', ) ), // Other query properties ) ); 

Где «my-value» – ваше «указанное значение».

Пример использования:

  add_action( 'pre_get_posts' , 'my_pre_get_posts' ); function my_pre_get_posts( $query ) { // Check this is main query and other conditionals as needed if( $query->is_main_query() ) { $query->set( 'meta_query', array( array( 'key' => 'project_cat', 'value' => 'my-value' ) ) ); } } 

См. WP_Query , pre_get_posts . Все условные условия доступны для вас. В настоящее время это выполняется по каждому основному запросу, которого вы, вероятно, не хотите.

В качестве альтернативы вы можете использовать query_posts (более простой, но менее эффективный способ), чтобы изменить запрос только для определенного экземпляра в шаблоне.

вы можете отфильтровать сообщение на основе мета значения и отобразить сообщение на странице cms.

 'meta_query' => array( array( 'key' => 'front_page', 'value' => 'yes', 'compare' => 'LIKE', )) 

пожалуйста, обратитесь к учебному пособию для пошагового объяснения

http://www.pearlbells.co.uk/filter-posts-custom-fields-wp_query/