如何为帖子的最后一条评论分配特定的ID

时间:2011-09-01 作者:Richard

我是Wordpress的新手,目前正在为我们公司的一位客户设计一个模板。但是,我需要为帖子的最后一条评论指定一个特定的id。

基本上我有自己的函数,在wp_list_comments().这是因为我有一个非常定制的评论布局。

现在,在函数中。php我想简单地用if语句赋值,比如

if ( is_last_comment() ) : print "last-comment" endif; 
我在这里、抄本和其他页面上都找过了,但什么也找不到。

我感谢任何帮助。

提前非常感谢您。

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

我猜您使用了注释循环(?)。如果是,你可以

可能性A

count 首先设置注释$i = 0; 循环前和$i++ 在循环的开始/内部,然后在“if($count<;$i)$css\\u id=“id=”last-comment“”时附加所需的id。

可能性B

您可以使用comments对象(?)和使用$last_comment = count( $comments_obj ); 循环之后echo $comments->$last_comment;. 如果是数组,则应使用echo $comments[ $last_comment ]; 当然

我不确定哪一个可行,因为我已经有一段时间没有处理评论了,但这应该会让你走上正轨。

SO网友:goldenapples

我确信在评论步行器中有一种方法可以做到这一点,但如果我正在解决这个问题,我可能会这样做:

在保存新评论时添加一个钩子,以更新其父帖子上的“最新评论”标志;

add_action( \'wp_insert_comment\', \'set_last_comment\', 10, 2 );

function set_last_comment_flag( $id, $comment ) {
    update_post_meta( $comment->comment_post_ID, \'_last_comment\', $id );
}
然后,使用该标志过滤注释类。

add_filter( \'comment_class\', \'flag_last_comment\', 10, 4)

function flag_last_comment( $classes, $class, $comment_id, $post_id ) {
    if ( get_post_meta( $post_id, \'_last_comment\', true ) == $comment_id ) 
        $classes[] = \'last_comment\';

    return classes;
}
现在,这将标记最后写入的注释,而不一定是页面上显示的底部注释(您可以有线程注释,也可以在一篇帖子上有多页注释)。所以我不知道这对你有多好。

如果您必须针对页面上显示的最后一条评论,我真的可以使用javascript来应用您想要的任何类。从注释遍历器中找出这一点所需的逻辑可能比在页面呈现后返回并找到最后一个列表项的一行jQuery要复杂得多。

结束

相关推荐

Wordpress comments title

此代码:<?php comments_template( \'\', true ); ?> 输出:<h3 id=\"comments-title\"> <h2> 12 Responses to My Post. </h2> </h3> (comments template) 我不知道这个h2标签是从哪里来的。我想摆脱它。并自定义我的评论标题(因此将有h4而不是h