Пользовательские типы записей в категориях и метках
В начале шаблона category.php/tag.php надо поместить этот php фильтр. track — пример пользовательского типа записи.
<?php // Добавляем поддержку пользовательских типов записей add_filter( 'pre_get_posts', 'slug_cpt_category_archives' ); function slug_cpt_category_archives( $query ) { $query->set( 'post_type', array( 'post', 'track' ) ); return $query; } ?>
Поддержка пользовательских типов записей через funсtions
Вставляем в funсtions.php следующую функцию
function custom_type_post_main($query) { $query->set('post_type', array( 'post', 'track' ) ); } add_action('pre_get_posts','custom_type_post_main');
При этом выделенную часть можно оборачивать любыми условиями (если категория, если главная страница, если какая-либо метка и т.д).
Пример, пользовательские типы записей в результатах поиска.
function search_filter($query) { if ( !is_admin() && $query->is_main_query() ) { if ($query->is_search) { $query->set('post_type', array( 'post', 'track' ) ); } } } add_action('pre_get_posts','search_filter');
Пример, пользовательские типы записей поддерживаются в шаблонах категории и метке.
function custom_type_post_main($query) { if ( is_category() || is_tag() ) { $query->set('post_type', array( 'post', 'track' ) ); } } add_action('pre_get_posts','custom_type_post_main');
|| — означает либо то, либо то
&& — означает и то и то
Иногда перед условием ставится ! — что это означает?
! — NOT, отрицание, т.е. нет такого-то условия
‘post_type’ => ‘any’ — изучить что это
Варианты условий
WP_Query Object ( [query_vars] => Array ( [page] => [pagename] => blog [error] => [m] => 0 [p] => 0 [post_parent] => [post_type] => [subpost] => [subpost_id] => [attachment] => [attachment_id] => 0 [name] => [static] => [page_id] => 0 [second] => [minute] => [hour] => [day] => 0 [monthnum] => 0 [year] => 0 [w] => 0 [category_name] => [tag] => [cat] => [tag_id] => [author_name] => [feed] => [tb] => [paged] => 0 [comments_popup] => [meta_key] => [meta_value] => [preview] => [s] => [sentence] => [fields] => [category__in] => Array ( ) [category__not_in] => Array ( ) [category__and] => Array ( ) [post__in] => Array ( ) [post__not_in] => Array ( ) [tag__in] => Array ( ) [tag__not_in] => Array ( ) [tag__and] => Array ( ) [tag_slug__in] => Array ( ) [tag_slug__and] => Array ( ) ) [tax_query] => [meta_query] => [post_count] => 0 [current_post] => -1 [in_the_loop] => [comment_count] => 0 [current_comment] => -1 [found_posts] => 0 [max_num_pages] => 0 [max_num_comment_pages] => 0 [is_single] => [is_preview] => [is_page] => [is_archive] => [is_date] => [is_year] => [is_month] => [is_day] => [is_time] => [is_author] => [is_category] => [is_tag] => [is_tax] => [is_search] => [is_feed] => [is_comment_feed] => [is_trackback] => [is_home] => 1 [is_404] => [is_comments_popup] => [is_paged] => [is_admin] => [is_attachment] => [is_singular] => [is_robots] => [is_posts_page] => 1 [is_post_type_archive] => [query_vars_hash] => 41032f87127fba65fb6743b1e97d8662 [query_vars_changed] => [thumbnails_cached] => [query] => Array ( [page] => [pagename] => blog ) [queried_object] => stdClass Object ( [ID] => 16 [post_author] => 1 [post_date] => 2012-01-31 17:23:57 [post_date_gmt] => 2012-01-31 17:23:57 [post_content] => [post_title] => Blog [post_excerpt] => [post_status] => publish [comment_status] => open [ping_status] => open [post_password] => [post_name] => blog [to_ping] => [pinged] => [post_modified] => 2012-01-31 17:23:57 [post_modified_gmt] => 2012-01-31 17:23:57 [post_content_filtered] => [post_parent] => 0 [guid] =>