我非常感谢您寻找并提供任何帮助,对此我的知识有限。
我正在尝试从WordPress循环中排除类别,因此发布到该类别的任何内容都不会发布在博客页面上。我尝试在下面添加一个功能
function remove_home_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', '-4' );
}
}
add_action( 'pre_get_posts', 'remove_home_category' );
我没有建立博客页面,但是它看起来很自定义,非常感谢您的帮助。这是模板中的内容。
<div>
<?php
get_template_part( 'parts/blog', 'header' );
get_template_part( 'parts/blog', 'featured' );
get_template_part( 'parts/blog', 'editor-picks' );
?>
</div>
<div class="container wpc-container" style=" <?php echo ( !empty($hgr_page_top_padding) ? ' padding-top:'.esc_attr($hgr_page_top_padding).'px!important;' : '' ); echo ( !empty($hgr_page_btm_padding) ? ' padding-bottom:'.esc_attr($hgr_page_btm_padding).'px!important;' : '' );?> ">
<div class="slideContent gu12">
<?php the_content(); ?>
<?php if(is_paged()) : ?>
<?php paginate_comments_links(); ?>
<?php endif;?>
<?php comments_template(); ?>
<?php if(is_paged()) : ?>
<?php paginate_comments_links(); ?>
<?php endif;?>
</div>
</div>
当我删除容器div时,所有博客帖子都消失了,因此我认为类别排除应该放在其中吗?但是我不知道在哪里或什么。
答案 0 :(得分:0)
乍一看,我怀疑是您的钩子函数中的$query->is_main_query()
条件。如果代码在the main WordPress "loop"中运行,并且该模板中没有主循环的标准代码,则此函数将仅返回true
。
您可以通过从钩子函数中删除该条件来解决,也可以重写模板以在输出页面内容时使用标准循环(从长期来看,这可能是更好的方法,因为其中还有很多其他事情) WP只会在循环中始终保持一致)。