Php 可湿性粉剂多回路-最近的后期和;标页码

Php 可湿性粉剂多回路-最近的后期和;标页码,php,wordpress,loops,pagination,Php,Wordpress,Loops,Pagination,我希望有人能帮我解决这个问题。这给我带来了一些问题。我试图让一个自定义类别页面在页面的开头显示最近的文章,下面我希望在一个单独的循环中显示给定类别中的其他文章,并分页,将循环偏移1。我已经寻找了很多方法来解决这个问题,但还没有找到一个解决方案!如果你能帮我这个忙,我会非常感激的!提前谢谢你!这是我的密码: <?php query_posts( 'cat=3&showposts=1&offset=0'); ?> <?php while (have_posts())

我希望有人能帮我解决这个问题。这给我带来了一些问题。我试图让一个自定义类别页面在页面的开头显示最近的文章,下面我希望在一个单独的循环中显示给定类别中的其他文章,并分页,将循环偏移1。我已经寻找了很多方法来解决这个问题,但还没有找到一个解决方案!如果你能帮我这个忙,我会非常感激的!提前谢谢你!这是我的密码:

<?php query_posts( 'cat=3&showposts=1&offset=0'); ?>
<?php while (have_posts()) : the_post(); ?>
      <div class="firstPost">
        Snipped post style
    </div>
    <div class="prevHeader">Previous Episodes</div>           
<?php endwhile; ?>
<div class="container archiveContainer">
<?php
// set the "paged" parameter (use 'page' if the query is on a static front page)
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;

// the query
$the_query = new WP_Query( 'cat=3&posts_per_page=6&offset=1&paged=' . $paged ); 
?>

<?php if ( $the_query->have_posts() ) : ?>

<?php
// the loop
while ( $the_query->have_posts() ) : $the_query->the_post(); 
?>
<div class="prevEntries">
        Snipped Post Style
            </div>
<?php endwhile; ?> 
</div>
<div style="width:100%">         
<span style="display:inline-block; margin-left:10px; float:left" class="nav-previous"><?php next_posts_link( '<h4>Older posts</h4>', $the_query->max_num_pages ); ?></span>
<span style="display:inline-block; margin-left:10px; float:right" class="nav-next alignright"><?php previous_posts_link( '<h4>Newer posts</h4>' ); ?></span></div>
<?php 
// clean up after the query and pagination
wp_reset_postdata(); 
?>

<?php endif; ?>

剪柱式
前几集
剪柱式
Codex声明:在查询中指定硬编码偏移量可以并且将中断分页,因为WordPress内部使用偏移量来计算和处理分页


见下文。如页面所述,您需要使用钩子和过滤器。

这当然可以做到,但使用
query\u posts肯定不行。如果是这样的情况,它将彻底失败。此外,偏移量会破坏分页,如果您不知道自己在做什么,则很难使用偏移量

我现在没有时间编写代码,但有一个想法:

如果需要在所有页面上显示最新文章,则可以执行以下操作

  • 删除自定义查询和偏移量,以便一切正常。使用默认循环并按常规分页

  • 若要在每页上显示第一篇文章,请使用创建自定义查询,并将其放置在需要显示此文章的位置。请参阅有关如何正确构造该查询的链接。请不要使用
    查询帖子

  • 现在您将看到第一篇文章显示了两次。要解决此问题,请将自定义查询包装在条件中

编辑

你可以试试这样的。(PS!
showposts
已折旧,请使用
posts\u per\u page
。此外,您可以在设置
偏移量时删除
paged
参数,因为它将被忽略)

警告未经测试)


嘿,彼得,谢谢你的帮助。我不太确定我是否正确地实现了is_paged()。我把它放在循环之前,就像这样:现在将发布更新。只需一个请求,将您的代码发布为对您的问题的编辑。不要在评论中发布代码,它不可读,而且很难跟踪:-)嘿,谢谢!这让我走上了正确的道路。它最初不会删除两次显示的帖子,所以我不得不在那里投入$do_not_duplicate,以使它完全锻炼!
if( is_paged() ) {
    $args = array(
        'posts_per_page' => 1,
        'cat' => 3,
    );

    $q = new WP_Query( $args );

    if( $q->have_posts() ) {
        while( $q->have_posts() ) {
        $q->the_post();

        // Display your loop elements

        } //end while
    wp_reset_postdata();
    } // end if have_posts()
} //end if is_paged

// Now for your main loop 

// set the "paged" parameter (use 'page' if the query is on a static front page)
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;

$the_query = new WP_Query( 'cat=3&posts_per_page=6&paged=' . $paged ); 

if ( $the_query->have_posts() ) {
    while ( $the_query->have_posts() ) { 
    $the_query->the_post();

    // Your loop elements

    }
    wp_reset_postdata();
}