仅显示带有评论的帖子

时间:2013-06-06 作者:Christopher

我有这个代码来显示一个类别中最近的帖子。我只需要显示有评论的帖子。我怎样才能通过快捷码做到这一点?

/* Shortcode to output recent posts from one category */

function display_cat_recent_posts() {
$args = array(
\'post_type\' => \'post\',
\'posts_per_page\'=> 5,
\'cat\'=> 10,
);
$cat_recent_posts = new WP_Query( $args );
if( $cat_recent_posts->have_posts() ):
$output = \'<ul>\';
while ( $cat_recent_posts->have_posts() ) : $cat_recent_posts->the_post();
$output .= \'<li><a href="\' . get_permalink() . \'" title="\' . get_the_title() . \'">\' . get_the_title() . \'</a></li>\';
endwhile;
$output .= \'</ul>\';
endif;
return $output;
wp_reset_postdata();
}
add_shortcode( \'recent-posts\', \'display_cat_recent_posts\' );
谢谢你。。。

1 个回复
SO网友:Mike Madern

由于您处于循环中,因此可以使用该函数get_comments_number().

检索帖子的注释、trackback和pingback总数的值。此标记必须位于循环中。不像comments_number() 此函数将以数值形式返回值。

使用它的示例如下:

$num_comments = get_comments_number();

if ( $num_comments > 0 )
    $output .= "...";
因此,您的代码可能如下所示:

/* Shortcode to output recent posts from one category */
function display_cat_recent_posts() {
  $args = array(
    \'post_type\' => \'post\',
    \'posts_per_page\'=> 5,
    \'cat\'=> 10,
  );

  $cat_recent_posts = new WP_Query( $args );

  if ( $cat_recent_posts->have_posts() ):
    $output = \'<ul>\';
    while ( $cat_recent_posts->have_posts() ) : $cat_recent_posts->the_post();
      if ( get_comments_number( ) > 0 ):
        $output .= \'<li><a href="\' . get_permalink() . \'" title="\' . get_the_title() . \'">\' . get_the_title() . \'</a></li>\';
      endif;
    endwhile;

    $output .= \'</ul>\';
  endif;

  return $output;

  wp_reset_postdata();
}

add_shortcode( \'recent-posts\', \'display_cat_recent_posts\' );

结束

相关推荐

How do I find posts?

我是一名新的网站管理员,我对没有显示在仪表板上的帖子有问题。发布所有(21)已发布(13)待定(8)。这是一个列表网站和用来显示的帖子。有没有关于如何解决这个问题的想法?