WordPress 回复时,为了美观,可以给回复评论者加上一个@ ,例如下图所示的样子。这样做方便读者更好地分辨是谁回复给了谁,有利于增加评论的可读性。
通常的代码如下所示:
- // 添加 @ 回复
- function comment_at( $comment_text, $comment = '') {
- if( $comment->comment_parent >1 ) {
- $comment_text = '<strong>回复</strong><span class="at">@<a href="#comment-' . $comment->comment_parent . '">'.get_comment_author( $comment->comment_parent ) . '</a></span>' . ': ' . $comment_text;
- }
- return $comment_text;
- }
- add_filter( 'comment_text' , 'comment_at', 20, 2);
上述代码的好处是:不会将 @评论者 写入数据库之中。
遇到的问题
但是,在实际操作中,如果打开调试模式,会出现 “Notice: Trying to get property of non-object in 。。。 ”这样的提示。指的是 if( $comment->comment_parent > 1 ) {
这一行代码。调试的时候发现,如果你把 var_dump( $comment->comment_parent );
这句添加到上述一行的上面,会首先出现 NULL ,然后才会在下面显示具体数值。所以,为了避免遇到 NULL 产生警告信息的问题,可以将
本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利
if( $comment->comment_parent > 1 ) {
改为:
if( isset($comment->comment_parent) && $comment->comment_parent > 1 ) {
这样就不会再有提示信息了。
至于 isset() 函数的意义,大家可在网上自行查找研究一下。
本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利