代码之家  ›  专栏  ›  技术社区  ›  LucyTurtle

Wordpress-从帖子中隐藏类别

  •  0
  • LucyTurtle  · 技术社区  · 5 年前

    所以我们的Wordpress网站的后端速度非常慢,因为我们有大量的帖子。有三个类别是我们不需要编辑的,所以我希望不要在后端加载它们。我见过一些插件限制谁可以编辑哪些类别的帖子,但它似乎并没有加快多少速度。我不确定这是否是因为它仍在拉这些帖子,只是在显示时过滤掉它们?

    我想知道 _get_list_table( 'WP_Posts_List_Table' ) 有一个钩子,我可以把它做成这样,这三个类别甚至不会从数据库中提取出来。

    这可能吗?它是否有助于加快后端速度?

    谢谢

    编辑:

    有点像这样,但是set()不允许在=或上使用修饰符=

    function exclude_category_posts( $query ) {
        if ( $query->is_main_query() && is_admin()) {
            //$query->set( 'cat', '-187460' );
            $query = new WP_Query( array( 'category__not_in' => array( 187460, 187460, 182149 ) ) );
        }
        return $query;
    }
    add_filter( 'pre_get_posts', 'exclude_category_posts' );
    

    注释掉的方法只适用于一个类别。新查询不会过滤任何内容):

    0 回复  |  直到 5 年前
        1
  •  2
  •   David Brossard    5 年前

    从博客中排除WordPress类别的PHP代码

    function exclude_category($query) {
    if ( $query->is_home() ) {
    $query->set('cat', '-xx');
    }
    return $query;
    }
    
    add_filter('pre_get_posts', 'exclude_category');
    

    诀窍是在你的分类ID前面加上减号(上例中的xx)。试试看,应该有用。

    使用这个符号 $query->set( 'cat', '-60, -61' ); 排除多个类别。

    可供替代的

    你也可以使用 category__not_in 参数

    $query = new WP_Query( array( 'category__not_in' => array( 2, 6 ) ) );
    

    source