从现有的WordPress显示未来3×号相邻的自定义信息(Wordpress show next 3

2019-10-20 17:32发布

在单/细节自定义文章页我想在这同时显示标题,摘要和永久的自定义后系列在接下来的3个职位侧边栏显示李时珍或div的自定义导航。 所以,如果我们对自定义后3,那么它会显示4,5,6在侧边栏。

我发现这个最接近的是: - =

global $post;
$current_post = $post; // remember the current post

for($i = 1; $i <= 3; $i++){
 $post = get_previous_post(); // this uses $post->ID
setup_postdata($post);

// do your stuff here       
the_title();

}

$post = $current_post; // restore

问题是,这只能说明第一在下一篇文章中,我需要证明3。

由于Glennyboy

Answer 1:

从上面你的代码是非常接近的。 它看起来像你只是缺少一个endfor; 也许一些HTML的。 尝试打击代码:

<ul>
    <?php
        global $post;
        $current_post = $post;

        for($i = 1; $i <= 3; $i++):
        $post = get_previous_post();
        setup_postdata($post);

        echo '<li>';
        echo '<h3>' . get_the_title() . '</h3>';
        the_excerpt();
        echo get_post_meta($post->ID, 'your_metafield_name', true);
        echo '</li>';

        endfor;
        $post = $current_post; 

    ?>
</ul>

当使用the_excerpt()它应包括一个“更多”链接已到后期,所以你不会需要使用the_permalink()函数。 如果没有3页或更多先前的文章,它只会显示有多少以前的帖子有。 我在single.php中模板文件测试这一点,但它应该在自定义后类型单一的模板文件的工作,如果你使用的是自定义的。 让我知道如果您有任何问题。



Answer 2:

与您的代码的问题是,get_previous_post()得到职务以前到现在的职位,让你的循环只是获取同一职位的3倍。

你需要使用什么是wp_get_recent_posts 。 你会使用它的WordPress的循环中,采用二次循环 ,使该查询。

根据你所添加的代码,你可能只是能够使用wp_get_recent_posts():

$args = array(
    'numberposts' => 3,
    'orderby' => 'post_date',
    'order' => 'DESC',
    'post_type' => 'post');

$recent_posts = wp_get_recent_posts( $args, ARRAY_A );


文章来源: Wordpress show next 3 x number adjacent custom posts from existing