»

修复WordPress评论时的Notice:Trying to get property of non-object

    WordPress  
前端web.config重定向建站数据库百度云加速WP Rocket网络安全伪静态访问CDN的问题cookiesSEO工作CDNIIS查询浏览器htaccess网站优化插件缓存Wp Super Cache访客身份认证

WordPress 回复时,为了美观,可以给回复评论者加上一个@ ,例如下图所示的样子。这样做方便读者更好地分辨是谁回复给了谁,有利于增加评论的可读性。

 

reply-with-at

 

通常的代码如下所示:

  1. // 添加 @ 回复  
  2. function comment_at( $comment_text$comment = '') {  
  3.   if$comment->comment_parent >1 ) {  
  4.     $comment_text = '<strong>回复</strong><span class="at">@<a href="#comment-' . $comment->comment_parent . '">'.get_comment_author( $comment->comment_parent ) . '</a></span>' . ': ' . $comment_text;  
  5.   }  
  6.   return $comment_text;  
  7. }  
  8. 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)。时光在路上保留所有权利

时光在路上扫码阅读、分享
  • 版权声明:该文章由 时光在路上 发表,共 882字。除非特别标注来源,否则为原创。详见《版权声明》部分。
  • 转载请注明:文章标题和文章链接 - 时光在路上 - 也可直接“复制本文链接” 或 使用右边二维码分享本文 →