一直没注意到,Git-Minori主题的评论@功能竟然失效了,昨天晚上看到百思不得其解,明明以前还是可以的啊!
之前 Git-Minori 主题使用的评论添加 @ 功能是采用来自 ludou 的代码。
// 评论添加@,by Ludou function ludou_comment_add_at( $comment_text, $comment = '') { if( $comment->comment_parent > 0) { $comment_text = '@'.get_comment_author( $comment->comment_parent ) . ' ' . $comment_text; } return $comment_text; } add_filter( 'comment_text' , 'ludou_comment_add_at', 20, 2);
作为机械狗出身的我并不懂“最好的语言”PHP,胡乱将上面的代码改了改,发现除了报错之外,没有任何效果,就算把这段代码删除了也是毫无变化,可以说明此段代码完全是废了。我想有可能是 WordPress 版本升级,最新版本不支持了。
可惜搜索了半天,也没找到相关 WordPress 版本升级后评论 @ 功能失效的信息,我也不知道究竟是为什么失效了。至于添加评论 @ 功能的方法,也到处都是拷贝 ludou 的代码,并没有什么其他好的方式。
Copy Code 是无望了。只能自己动手 Coding 了……
将主题里面有关评论区域的代码看了一遍逻辑,翻看了下 WordPress 的 comment 文档,搞起。
这个问题,直接修改评论样式可破。
由于不懂 PHP,而且这个解释起来好麻烦啊……→_→
所以呢,我就直接放代码示例上来了,代码上已经添加了注释,我觉得应该很好懂的了。看得懂的人应该知道怎么改了,看不懂的,就找类似的代码段来修改,因为每个主题的 function.php 模板函数都不一样的,要看实际的实现逻辑再具体分析。
/* * 自定义评论外观 *Author: ChIaS(MrORZ) *Site: www.mrorz.com *Create: 2017-01-17 *License: MIT */ function deel_comment_list($comment, $args, $depth) { echo '<li '; comment_class(); echo ' id="comment-' . get_comment_ID() . '">'; //输出头像 echo '<div class="c-avatar">'; echo str_replace(' src=', ' data-original=', get_avatar($comment->comment_author_email, $size = '54', deel_avatar_default())); //评论主体内容(重点是改这段代码)==== echo '<div class="c-main" id="div-comment-' . get_comment_ID() . '">'; //判断逻辑:如果这条评论存在上一级评论,则在评论前面添加“@+上一级评论的人” if( $comment->comment_parent > 0) { echo str_replace(' src=', ' data-original=', convert_smilies('<a href="#comment-' . $comment->comment_parent . '">@'.get_comment_author( $comment->comment_parent ) . '</a>:' . get_comment_text())); } //判断逻辑:如果这条评论没有上一级评论,则直接输出评论内容 if( $comment->comment_parent == 0){ echo str_replace(' src=', ' data-original=', convert_smilies(get_comment_text())); } //判断逻辑:如果这条评论待审核,则直接输入提示。 if ($comment->comment_approved == '0') { echo '<span class="c-approved">您的评论正在排队审核中,请稍后!</span><br />'; } //评论主体内容结束(重点是改上面这部分)==== echo '<div class="c-meta">'; echo '<span class="c-author">' . get_comment_author_link() . '</span>'; //输出评论时间 echo get_comment_time('Y-m-d H:i '); //判断逻辑:如果这条评论不是处于待审核中,根据嵌套评论的设置逻辑显示回复和编辑。 if ($comment->comment_approved !== '0') { echo comment_reply_link(array_merge($args, array( 'add_below' => 'div-comment', 'depth' => $depth, 'max_depth' => $args['max_depth'] ))); echo edit_comment_link(__('(编辑)') , ' - ', ''); } echo '</div>'; echo '</div></div>'; }
改完这个之后,刷新下网站。
(。・∀・)ノ゙ Git-Minori 和 ISay 这两个主题我一直在使用 Git 更新修复,只要不是大改,我还是有耐心继续维护下去的~
有机会的话,我是很乐意将代码开源共享出来,可惜……目前还有很多无法拿出来开源的问题,只能自用。
Comments NOTHING