Offset WP_Query by negative 1

时间:2013-08-19 作者:hyperdrive

我有一个事件循环,我想知道是否有可能将循环偏移-1,因此显示当前帖子的上一篇和下一篇帖子。

EDIT - 谢谢你的评论,我想我可以澄清一下。当访问者位于单个事件页面上时,我想在页面底部显示4个事件;前两个是过去的事件,下两个是即将发生的事件。我想我需要查询所有事件,获得当前事件结果的位置,从该数字中减去2,然后将该数字应用于偏移量。

$upcoming_events_args = array(
    \'post_type\' => \'event\',
    \'meta_key\' => \'start_date\', // name of custom field
    \'orderby\' => \'meta_value_num\',
    \'order\' => \'ASC\',
    \'posts_per_page\' => \'3\',
    \'meta_query\' => array(
        array(
            \'key\' => \'start_date\',
            \'value\' => $date_of_page,
            \'compare\' => \'>=\',
            \'type\' => \'DATE\'
        )
    )
);

1 个回复
SO网友:Rahil Wazir

我不明白你的问题。确切地

是否要下一页、上一页和后一页?

想查看下一篇和上一篇文章的标题或其他内容吗?

实际上,您将一个不正确的值放置到偏移位置。你必须这样做。

// Initialize where to start the post from, 0 is most recent post
$init_count = 0;

// Get the current page integer
$page = get_query_var( \'paged\' ) ? get_query_var( \'paged\' ) : 1;

// And the simple formula for offset is this
$offset = ( $page - 1 ) * $init_count;

//Now you should use your query like this:

<?php $upcoming_events_args = array(
    \'post_type\' => \'event\',
    \'meta_key\' => \'start_date\', // name of custom field
    \'orderby\' => \'meta_value_num\',
    \'order\' => \'ASC\',
    \'posts_per_page\' => \'3\',
    \'number\'     =>  $init_count,
    \'page\'       =>  $page,
    \'offset\'     =>  $offset,
    \'meta_query\' => array(
    array(
        \'key\' => \'start_date\',
        \'value\' => $date_of_page,
        \'compare\' => \'>=\',
        \'type\' => \'DATE\'
      ))
    );
通过将此代码放在循环结束后,将显示您的下一篇和上一篇文章。

<ul class="pagination">
    <li id="previous-posts">
        <?php previous_posts_link( \'<< Previous Posts\', $custom_query->max_num_pages ); ?>
    </li>
    <li id="next-posts">
        <?php next_posts_link( \'Next Posts >>\', $custom_query->max_num_pages ); ?>
    </li>
</ul>

结束

相关推荐

Problems with loop

我的索引中有这个循环。php: <?php if (have_posts()) : while (have_posts()) : get_template_part( \'post\' ); endwhile; endif; ?> 调用此模板<?php ?> <h2 id=\"post-<?php the_ID()