我正在尝试寻找一种方法来隐藏除一个页面(及其子页面/子页面)之外的所有页面中的特定帖子类别。
比方说,我有一个名为“水果”的页面,它的子页面/子页面为“浆果”和“水果”。此外,我创建了一个帖子类别“水果类别”,并标记了一些帖子。我希望这些帖子仅显示在“水果”,“浆果”和“石果”页面上。不在主页,任何存档或侧边栏或任何其他页面上。谷歌搜索时,我只是在主页或博客页面上找到隐藏类别的示例。
到目前为止,这是我在functions.php
中的代码:
function tpa_exclude_technology_cat( $query ) {
if ( !$query->get_queried_object_id('8') ) { // "Fruits"-page has id of 8
$query->set( 'cat', '-3' ); // "Fruits-Category" has id of 3
}
return $query;
}
add_filter( 'pre_get_posts', 'tpa_exclude_technology_cat' );
我不确定如何获取“水果”的子页面/子页面。也许有更好的方法来解决这个问题?
谢谢!
答案 0 :(得分:0)
试试这个-
function tpa_exclude_technology_cat( $query ) {
if ( $query->get_queried_object_id() != 8 || $query->get_queried_object()->post_parent != 8 ) { // "Fruits"-page has id of 8
$query->set( 'cat', '-3' ); // "Fruits-Category" has id of 3
}
return $query;
}
add_filter( 'pre_get_posts', 'tpa_exclude_technology_cat' );