GET_PREVICE_POST未按预期工作

时间:2017-09-25 作者:Jamie

我已经使用get\\u previous\\u post来获取自定义帖子类型的上一篇帖子。当我尝试这样做的时候

 $prevPost = get_previous_post();
 var_dump($prevPost);
我得到一个包含我以前帖子的帖子对象。然后我试着设置它,这样我就可以获得post数据

 $prevPost = get_previous_post(true);
    if($prevPost) {
        $args = array(
            \'posts_per_page\' => 1,
            \'include\' => $prevPost->ID
        );
        $prevPost = get_posts($args);
        foreach ($prevPost as $post) {
            setup_postdata($post);
           ?> <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(\'thumbnail\'); ?></a>
 }
我想能够获得下一篇文章的特色图片和永久链接,如果不设置帖子数据,这些内容似乎不可用。我的问题是,当我这样做时,会得到一个空数组。

为什么会这样?它在那里没有设置post数据,并且在我设置它时消失。

1 个回复
最合适的回答,由SO网友:Milo 整理而成

根据上下文,您可能需要global $post; 首先,您没有在不同的本地变量上操作。您也已经有了一个post对象,所以您可以直接将其分配给$post 通话前setup_postdata...

但是,您可以跳过所有这些,使用接受post对象参数的函数-

$prevPost = get_previous_post(true);
if($prevPost) {
    echo get_permalink($prevPost);
    echo get_the_post_thumbnail($prevPost, \'thumbnail\');
}
大多数模板函数都有这样的替代函数。

结束

相关推荐

Ignore latest two posts

我试图从一个页面中排除最近的两篇博客文章。我知道这是可能的offset 然而,这样做会导致一个bug,其中一些博客帖子会在第二页上重复,因此并不理想。目前,我正在使用post id手动执行此操作,如下所示:$paged = ( get_query_var( \'paged\' ) ) ? get_query_var( \'paged\' ) : \'1\'; $args = array( \'posts_per_page\' => 5, \'post__not