如果今天在Wordpress中有评论,请获取(第一个)评论的链接

时间:2013-08-01 20:40:36

标签: php wordpress function foreach comments

我有这个功能和帖子的链接:

<?php
foreach ($results as $id) {
  $post = &get_post( $id->ID );
  setup_postdata($post);

  <li><a <?php href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a>

</li>
  <?php
} ?>

我想要做的是:如果有评论今天发布,请向我显示已发布的第一条评论的链接。例如:如果今天有4条评论,我想要链接到第一条评论,而不是像现在这样的永久链接。

我试过用这个:
    <a <?php href="<?php the_permalink(get_comments->$post_id) ?>">postname</a>comment_post_ID之类的变体,但我无法让它发挥作用。我做错了什么,我该怎么办?

1 个答案:

答案 0 :(得分:0)

我认为您可能会对对象和功能感到困惑(或者您复制/粘贴错误)。当您尝试执行get_comments-&gt; $ post_id时,由于get_comments不是对象get_comments is a function that accepts parameters,因此无效。看看我在下面做了什么,因为它可以帮到你:

<?php
foreach ($results as $id) {
  $post = &get_post( $id->ID );
  setup_postdata($post);

  $args = array('post_id' => $id->ID, 'number' => 1);
  $lastComment = get_comments($args);

  if (!empty($lastComment[0]) and $lastComment[0]->comment_date > date('Y-m-d 00:00:00')){
    echo '<li><a href="'.get_comment_link($lastComment[0]).'">'.the_title().'</a></li>';
  }
?>

get_comments()将采取一堆争论,在上面我传递了postID和1的计数,所以它只拉出最后一条评论。它仍然会提取今天没有发表的评论,所以如果评论是在今天午夜之后发布的话,我添加的if条件应该只回应它。