Wordpress - 显示最近5篇帖子 - 请回复问题

时间:2013-03-29 17:46:08

标签: php wordpress function

我之前在SO上提出了一个问题,以便从特定类别问题的最后5个帖子中获得帮助。这已得到解决,但提出了一个新问题,并且仅在我使用短代码时才会显现。

问题

使用下面的代码,当我将短代码添加到我的一个页面时,它会在页面底部添加一个“发送回复”框。我没有关闭评论并且在没有使用短代码时网站上没有显示“留下回复” - 只有当我添加短代码时才会发生这种情况,这让我相信这个问题与下面的PHP代码有关添加到我的functions.php。

代码

function Last5posts()   {
    $args = array( 'showposts' => 5, 'cat' => '3');                  
    $last_5_posts_query = new WP_Query( $args );
    while($last_5_posts_query->have_posts()) : 
    $last_5_posts_query->the_post();
    $link = get_permalink();
    $title = get_the_title();
    $date = get_the_date();                              

    $content .= '<div class="latest-posts">';
    $content .= '<h3><a href='.$link.' target="_top">'.$title.' / '.$date. '</a></h3>';
    $content .= '<p class="excerpt">' .get_the_excerpt(). '</p>';
    $content .= '</div>';
endwhile;

return $content;
}

add_shortcode('Last5Posts', 'Last5posts' );

2 个答案:

答案 0 :(得分:2)

问题是由于“show posts”被弃用,将其替换为“posts_per_page”,一切都很好。

答案 1 :(得分:0)

您在代码中使用自定义WP_Query。在查询中调用the_post()时,全局$ post变量会发生变化。因此,在您的短代码方法之后运行的代码将与您的新$ post值一起使用。

在endwhile之后添加wp_reset_postdata,它应该没问题。