我发现在 WordPress 中可以做到这一点:
假设您在名为“news-sub”的子类别下发布了一些内容,而父类别是“news”。默认情况下,即使您只选择将其发布在新闻子类别下,wordpress 帖子也会发布在新闻和新闻子目录下。我找到了一种方法,当您选择将帖子仅发布在其子类别中时,该帖子仅发布在其子类别中。这是插入到functions.php中的代码:
add_action( 'pre_get_posts', 'my_post_queries' );
function my_post_queries( $query ) {
// not an admin page and is the main query
if (!is_admin() && $query->is_main_query()){
if(is_category()){
add_action('posts_where', 'current_category_only');
}
}
}
function current_category_only($where) {
$current_cat = get_query_var('cat');
if($current_cat){
global $wpdb;
return " AND ( $wpdb->term_relationships.term_taxonomy_id IN ($current_cat) )
AND $wpdb->posts.post_type = 'post' AND ($wpdb->posts.post_status = 'publish'
OR $wpdb->posts.post_status = 'private')";
}
return $where;
}
这段代码很棒。但是,它不适用于插件。例如...我有一个插件,可以为您选择的类别发布缩略图和标题。假设我选择它以仅显示“新闻”类别..如果我在“新闻子”类别下发布了一些内容,它仍然会通过插件显示,无论我之前提到的功能代码如何。我尝试将功能代码复制并粘贴到插件中,但它不起作用。:(
那么,如何让这个功能与显示类别的插件一起使用?我会修改它并将其保留在 functions.php 文件中,我会修改它并将其复制并粘贴到我的插件文件中,还是我将如何修改它?任何帮助将不胜感激!:)