【问题标题】:Wordpress - Hide Category from PostsWordpress - 从帖子中隐藏类别
【发布时间】:2020-11-05 03:27:32
【问题描述】:

因此,由于我们拥有大量帖子,我们的 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' );

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

【问题讨论】:

标签: wordpress


【解决方案1】:

从博客中排除 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

【讨论】:

  • 也可以使用category__not_in => []参数。
  • 我可以将 set() 用于多个类别吗?似乎它只忽略了最后一个。
  • 使用这个符号 $query->set( 'cat', '-60, -61' );
  • 感谢大卫这样做
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-16
  • 2013-10-29
相关资源
最近更新 更多