wordpress - 从 the_content() wordpress 中排除一个类别
问题描述
提前感谢您寻找并提供任何帮助,我对此知之甚少。
我试图从 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 时,所有博客文章都消失了,所以我认为我的类别排除应该放在那里的某个地方?但我不知道在哪里或什么。
解决方案
乍一看,我怀疑是$query->is_main_query()
你的钩子函数中的条件。true
只有当代码在WordPress 主“循环”中运行,并且该模板中不存在主循环的标准代码时,此函数才会返回。
您可以通过从挂钩函数中删除该条件来修复,或者在输出页面内容时重写模板以使用标准循环(从长远来看,这可能是更好的方法,因为 WP 中还有很多其他的东西会无论如何,只能在循环内始终如一地工作)。
推荐阅读
- jquery - CSS / JS根据高度拉伸表格
- javascript - 无法在 vue 中的函数内部设置属性,在函数外部我可以读取和写入它。不知道为什么?
- c# - ElasticSearch NEST - GroupBy 然后 OrderBy
- android - 如何从互联网访问运行在 Android 设备上的网络服务
- javascript - 如何从嵌套数组中查找数据?
- react-native - 在 react-native 中管理 ScrollView 和 Input-Keyboard
- ffmpeg - 我可以使用 av_write_frame() 代替 av_interleaved_write_frame() 吗?
- ruby-on-rails - 是否有 ruby/rails gem 可以更轻松地查询时间范围?
- javascript - 如何使用 JavaScript 访问下面构造的 HTML 对象
- php - Laravel 5.4 版本公开不删除