腾讯云服务器优惠活动华纳云香港服务器

如何实现WordPress指定文章或页面允许评论带链接

WordPress主题推荐

今天博客112兄提出了一个我认为有点奇怪的需求,也就是:整站的所有文章和页面的评论昵称或评论内容都不允许带有链接地址,除了指定的文章或页面外。下班后立马折腾了下,结果死活不成功… 我是用 is_single() 和 is_page() 来判断的。然后,仔细想了下,可能是因为钩子是直接作用于preprocess_comment,所以上面的判断并不能很好的起作用!

如何实现WordPress指定文章或页面允许评论带链接-第1张-boke112百科(boke112.com)

偶然间想起了我这篇《WordPress中如何允许非管理员用户在评论中插入图片》里的第三种方法,然后立马就尝试了下并成功了~

实现方法很简单,只需要将以下代码添加到主题functions.php文件中最后一个?>的前面即可,具体代码如下:

  1. /**
  2.  * 如何实现WordPress指定文章或页面允许评论昵称/内容带连接地址 – 龙笑天下
  3.  * http://www.ilxtx.com/allow-comment-link-in-some-pages.html
  4.  */
  5. define(‘ALLOW_PAGES’, ‘Id1,Id2’);
  6. function lxtx_allow_comment_link( $comment ) {
  7.     $post_ID = $comment[“comment_post_ID”];
  8.     $allow_posts = ALLOW_PAGES ? explode(‘,’, ALLOW_PAGES) : array();
  9.     if(!in_array($post_ID,$allow_posts)){
  10.         $links = ‘/http:\/\/|https:\/\/|www\.|\.com/u’;
  11.         if (preg_match($links$comment[‘comment_author’]) || preg_match($links$comment[‘comment_content’])) {
  12.             err(__(‘别啊,昵称和评论里面有链接会怀孕的哟!!’));
  13.         }
  14.     }
  15.     return $comment;
  16. }
  17. add_filter(‘preprocess_comment’, ‘lxtx_allow_comment_link’);

ALLOW_PAGES里定义的Id1,Id2是允许评论昵称/内容带链接地址的文章或页面的 ID ,多篇文章或页面用 , 隔开即可。

例如只允许ID为6和8的文章评论昵称或内容可以带链接地址,那么只需要将:

  1. define(‘ALLOW_PAGES’, ‘Id1,Id2’);

改为

  1. define(‘ALLOW_PAGES’, ‘6,8’);

即可。

赞 (0) 打赏
版权声明:本文为投稿文章,感谢 龙笑天下 的投稿,版权归原作者所有!发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请联系我们,确认后马上更正或删除,谢谢!
wu