Skip latest 3 posts from loop

时间:2019-03-10 作者:Kerem Beyazit

我下载了一个初学者主题(下划线)。我想从索引页的循环中排除前3篇文章。

这是循环;

<?php
if ( have_posts() ) :
    if ( is_home() && ! is_front_page() ) :
        ?>
        <header>
            <h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1>
        </header>
        <?php
    endif;
    /* Start the Loop */
    while ( have_posts() ) :
        the_post();
        get_template_part( \'template-parts/content\', get_post_type() );
    endwhile;
    the_posts_navigation();
else :
    get_template_part( \'template-parts/content\', \'none\' );
endif;
?>
谢谢。

2 个回复
SO网友:Antti Koskinen

您可以使用pre_get_posts 更改主查询的操作。法典中有一条说明,使用might break pagination.

看看这个老问题和答案,Changing Posts Per Page and offset with pre_get_posts 它有使用pre_get_posts 以及如何处理分页问题。

SO网友:Tanmay Patel

这是应该进入的代码functions.php 文件

function exclude_first_3_posts($query){
  if(!is_admin() && $query->is_main_query() && is_home() && !is_front_page()){
    $query->set(\'post_type\',\'post\');
    $query->set(\'offset\',3);
    $query->set(\'order\',\'desc\');
  }
}
add_action(\'pre_get_posts\',\'exclude_first_3_posts\');

相关推荐

echo a tax term in loop

对于列表中的每个项目,我需要在之后在此循环中回显CPT的一个术语。感谢您的指导或帮助。原始代码来自Stackoverflow。com,因为它起作用了。 <?php $da_place = get_field(\'smart_place\'); //acf field $args = array( \'post_type\' => \'to_do_items\', \'tax_query\' => array