使用动态偏移量创建一个“Read Next”帖子数组

时间:2015-07-10 作者:muncherelli

在这里从头开始写我的第一个主题。我正试图创建一个“阅读下一篇”边栏,在单曲的边栏上显示接下来30篇文章的列表。php文件。我知道如何抓取我在主页上使用的所有最近的帖子,如下面的示例中所示,但我在这篇帖子上遇到了问题。

我希望列表显示用户当前查看的帖子之前发布的最近30篇帖子。我假设我需要使用不同的函数或不同的偏移量,但不确定如何获取当前帖子的“回溯距离”以将其用作偏移量。(如果这是正确的方法)。

看看this site 例如,我想在她的侧边栏(右侧广告下方)上做些什么。

以下是我主页上最近的post-arg数组,我正在使用它作为模板来创建:

   $args = array(
        \'numberposts\' => 10,
        \'offset\' => 2,
        \'post_type\' => \'post\',
        \'post_status\' => \'publish\',
        \'suppress_filters\' => true );
        $recent_post_list = wp_get_recent_posts( $args, ARRAY_A );
然后在我的输出中:

<?php foreach ($recent_post_list as $recent_post): ?>
    <div class="row">
        <div class="hidden-xs col-sm-1 col-md-1 col-lg-1"></div>
        <div class="col-xs-5 col-sm-3 col-md-5 col-lg-5">
            <?php if (has_post_thumbnail($recent_post->ID)): ?>
            <?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $recent_post[\'ID\'] ), \'single-post-thumbnail\' ); ?>
            <a href="<?php echo get_permalink($recent_post[\'ID\']);?>"><img class="img-responsive" src="<?php echo $image[0]; ?>" /></a>
            <?php endif; ?>

        </div>
        <div class="col-xs-5 col-sm-7 col-md-5 col-lg-5">
            <?php 
                $category = get_the_category($recent_post[\'ID\']);
            ?>
            <span class="category-box hidden-xs"><?php echo $category[0]->cat_name; ?></span>
            <span class="category-box hidden-xs"><br /></span>
            <?php echo get_the_title( $recent_post[\'ID\'] ); ?><br />
            <?php echo human_time_diff( get_the_time( \'U\',$recent_post[\'ID\']), current_time(\'timestamp\') ) . \' ago\'; ?>
        </div>
        <div class="hidden-xs col-sm-1 col-md-1 col-lg-1"></div>    
    </div>
    <div class="row">
        <div class="hidden-xs col-sm-1 col-md-1 col-lg-1"></div>
        <div class="col-xs-12 col-sm-10 col-md-10 col-lg-10"><hr /></div>
        <div class="hidden-xs col-sm-1 col-md-1 col-lg-1"></div>    
    </div>

    <?php endforeach; ?>

1 个回复
SO网友:Pieter Goosen

使用date_query 获取比当前帖子旧的30篇帖子。

示例(NOTE: 以下内容未经测试,需要Wordpress 3.7+和PHP 5.4+)

$current_post = get_queried_object();
$args = [
    // Your arguments to pass, add as needed
    \'posts_per_page\' => 30,
    \'date_query\' => [
        [
            \'before\' => strtotime( $current_post->post_date ), // Add current post date to search posts againt before this one
            \'inclusive\' => false, // Exclude current post from the list
        ]
    ],
];
$q = get_posts( $args );

结束

相关推荐

如何使用`get_sidebar‘函数来调用第二个侧边栏?

在我博客的主主页中调用第二个侧栏的正确方法是什么?我是说同时有两个边栏。。。。当我得到更多信息时,我可能会编辑这个问题,但现在我觉得完全迷路了。