php WordPress -显示最后5个帖子-离开回复问题

bxpogfeg  于 2022-12-10  发布在  PHP
关注(0)|答案(2)|浏览(111)

我提出了一个问题,以前对这样得到帮助,显示最后5个职位从特定类别的问题。这是解决,但提出了一个新的问题,只有当我使用短代码明显。

问题

使用下面的代码,当我把短代码添加到我的一个页面时,它会在页面底部添加一个“留下回复”框。我关闭了评论,并且当不使用短代码时,“留下回复”在网站上不明显--只有当我添加短代码时才会发生,这让我相信问题与下面添加到我的functions.php中的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' );
kwvwclae

kwvwclae1#

这个问题是由于“showposts”被降级而引起的,将其替换为“post_per_page”,一切都很好。

piv4azn7

piv4azn72#

您在代码中使用了自定义WP_Query。当您在查询中调用_post()时,全局变量$post会发生变化。因此,在shortcode方法之后运行的代码将使用新的$post值。
在endwhile之后添加wp_reset_postdata,应该没问题。

相关问题