在我的Wordpress网站中,我想阻止任何未分类的帖子显示在网站搜索和存档页面中 - 包括最近帖子的首页。
我希望未分类的帖子可见的唯一地方是实际帖子本身,以及作者存档页面,例如example.com/author/authorName
我看了一个插件是徒劳的。我估计必须有一些自定义的PHP,但我的技能并不是那么深。
任何帮助或线索都非常感谢!
答案 0 :(得分:1)
您必须在archive.php
和index.php
的循环中排除该类别。此示例使用类别ID编号,您可以通过转到帖子>>找到这些编号。分类即可。您将看到每个类别的ID。
在上面提到的文件中,找到循环
<?php $query = new WP_Query( 'cat=-1' ); ?> // This is where you exclude. You can comma separate multiple categories : 'cat=-1,-2,-3' etc
<?php if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); ?>
<div class="post">
<!-- Here is the post content - use whatever your theme is using -->
</div>
<?php endwhile;
wp_reset_postdata();
else : ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>
至于搜索结果,试试这个。这将进入functions.php
(我没有测试过,所以如果有问题请告诉我。)
add_filter( 'pre_get_posts' , 'search_exclude' );
function search_exclude( $query ) {
if( $query->is_admin )
return $query;
if( $query->is_search ) {
$query->set( 'category__not_in' , array( 1 ) ); // Category ID
}
return $query;
}
请注意:您也可以通过逗号分隔这里的类别:
$query->set( 'category__not_in' , array( 1,2,3 ) );