如何在页面上显示某个类别类型,同时隐藏所有其他类别类型?

时间:2019-10-10 作者:Rico

我们需要在除一个页面外的所有页面上隐藏特定的类别类型,然后在单个页面上显示隐藏的类别。

到目前为止,为了隐藏所有页面上的类别,我们编写了以下代码:

// Exclude Category Posts from Home Page
    function themeprefix_exclude_category( $query ) {
        if ( $query->is_home() ) {
        $query->set( \'cat\', \'-3\' );//add your category number
        }
        return $query;
    }
    add_action( \'pre_get_posts\', \'themeprefix_exclude_category\' );
我们发现这段代码只显示某个帖子类别,但它不适用于特定页面。

// Only Portfolio Category
    function only_portfolio_category( $query ) {
       if ( $query->is_page(\'clinical-trials\') && $query->is_main_query() ) {
       $query->set( \'cat\', \'3\' );
       }
    }
    add_action( \'pre_get_posts\', \'only_portfolio_category\' );
如果有人对此有解决办法,我们很想知道!

1 个回复
SO网友:KGreene

请尝试使用is\\u single和query\\u vars而不是is\\u page:

add_action( \'pre_get_posts\', \'change_queries\', 1000 );

function change_queries ($query){
    if(is_single() && $query->query_vars[\'page_id\']== \'your page id\'){
        $query->set( \'cat\', \'3\' );
    }
}

相关推荐

Query posts only shows 1

我有一个ID数组:var_dump($userPostsInternal); -> string(13) \"128537,128545\" 那我会的$args = array( \'post__in\' => array($userPostsInternal), \'post_type\' => \'post\', \'posts_per_page\' => -1, ); $q = new WP