今天分享一个我认为有点奇怪的需求,也就是本文标题-如何实现 WordPress 指定文章或页面允许评论昵称/内容带连接地址,看着这么长的标题,很多人认为很难实现吧,其实借助 WordPress 强大的扩展性做起来极其简单,不信咱们尝试一下把!
既然有了这个想法后我们立刻折腾了起来,刚开始我开始是用 is_single() 和 is_page() 来判断的。然后,仔细想了下,可能是因为钩子是直接作用于 preprocess_comment,所以上面的判断并不能很好的起作用!查阅了大量资料我们发现和一篇文章可以借鉴,然后就尝试了下并成功了~ 代码如下:
/**
* 如何实现WordPress指定文章或页面允许评论昵称/内容带连接地址
*/
define('ALLOW_PAGES', 'Id1,Id2');
function lxtx_allow_comment_link( $comment ) {
$post_ID = $comment["comment_post_ID"];
$allow_posts = ALLOW_PAGES ? explode(',', ALLOW_PAGES) : array();
if(!in_array($post_ID,$allow_posts)){
$links = '/http:\/\/|https:\/\/|www\.|\.com/u';
if (preg_match($links, $comment['comment_author']) || preg_match($links, $comment['comment_content'])) {
wp_die('别啊,昵称和评论里面有链接会怀孕的哟!!');
}
}
return $comment;
}
add_filter('preprocess_comment', 'lxtx_allow_comment_link');
注:ALLOW_PAGES 里定义的是允许评论昵称/内容带连接地址的文章或页面的 ID ,多篇文章或页面用 , 隔开即可。
专业提供WordPress主题安装、深度汉化、加速优化等各类网站建设服务,详询在线客服!