排除aive.php中的特定帖子

时间:2014-10-31 作者:Siva

我的存档文件包含。。

<?php if (have_posts()) : while (have_posts()) : the_post(); ?> 
<a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a> 
但我想排除几个带有ID的帖子,我怎么做?

重要的但是那些被排除在外的帖子应该在谷歌搜索中正常显示,我不想在搜索引擎中丢失它们。只是我想隐藏在我的网站只。

谢谢朋友们。

1 个回复
最合适的回答,由SO网友:Robert hue 整理而成

您可以在的帮助下从存档页面中排除帖子pre_get_posts 行动通常pre_get_posts 用于修改主查询,所以它是解决您问题的最佳解决方案。

function my_custom_get_posts( $query ) {
    if ( is_admin() || ! $query->is_main_query() )
        return;

    if ( $query->is_archive() ) {
        $query->set( \'post__not_in\', array( 7, 11, 21 ) );
    }
}
add_action( \'pre_get_posts\', \'my_custom_get_posts\', 1 );
请注意7, 11, 21 在上面的代码中,这些是我们从归档页面中排除的帖子ID。您可以根据需要指定任意多个逗号分隔的帖子ID。

是的,这不会阻止谷歌为它们编制索引。

结束

相关推荐

Cache Get_posts

我有一个查询(见下文),它提供了一个由10个新闻项组成的列表,这些新闻项按元值“event\\u date”排序,并经过筛选,以便只显示比今天更早的帖子。处理此查询需要两秒钟,因此我正在寻找一种简单的方法来缓存结果,以加快加载时间。我已经使用了WPEngine,所以我不需要任何缓存插件。提前感谢您的帮助。<?php $today = time();?> <?php $args = array( \'numberposts\' => 10, \'orderb