要根据帖子类型筛选WordPress关系,可以使用pre_get_posts
钩子来修改主查询。
下面是一个示例代码,可以根据帖子类型筛选关系:
function filter_posts_by_type( $query ) {
// 仅在主查询和后台管理页面上运行
if ( ! is_admin() || ! $query->is_main_query() ) {
return;
}
// 仅在帖子类型为'post'时运行
if ( $query->get( 'post_type' ) === 'post' ) {
// 在此处添加筛选逻辑
$query->set( 'category_name', 'news' ); // 假设仅显示帖子分类为'news'的帖子
}
}
add_action( 'pre_get_posts', 'filter_posts_by_type' );
上面的代码在pre_get_posts
钩子中添加了一个回调函数filter_posts_by_type
。在函数中,我们首先检查是否在后台管理页面和主查询中运行。接下来,我们检查帖子类型是否为'post'。如果是,则可以根据需要添加筛选逻辑。在示例中,我们使用set()
方法设置了category_name
参数为'news',以仅显示分类为'news'的帖子。
您可以根据自己的需求修改帖子类型和筛选逻辑。请注意,此代码应放置在主题的functions.php
文件中或自定义插件中。