WordPress评论发图片地址转换成图片

jerry wordpress 2015年11月23日 收藏

1. add_filter('preprocess_comment')

评论提交之后,通过此api来加以处理,比如判断spam。

2. 正则判断是否是图片:"/(http:\/\/|https:\/\/){1}.+?\.(jpg|gif|bmp|bnp|png)$/is",感谢@MeeSii修正。

3. 普通用户没有发图片(<img src="" />)的权限,如果设置成所有文章评论都可以发图,似乎又不太好,于是加以处理

global $allowedtags;
$allowedtags['img'] = array('src' => array (), 'alt' => array ());

以下是完整代码

function auto_comment_image( $comment ) {// by http://mufeng.me
    $post_ID = $comment["comment_post_ID"];
    if($post_ID == 972){ //此处为页面id
        global $allowedtags;
        $content = $comment["comment_content"];
 
        // alt部分自行填写
        $content = preg_replace('/(http:\/\/|https:\/\/){1}.+?\.(jpg|gif|bmp|bnp|png)$/is','<img src="$0" alt="" />',$content);
 
        //允许发布img标签
        $allowedtags['img'] = array('src' => array (), 'alt' => array ());
 
        // 重新给$comment赋值
        $comment["comment_content"] = $content;
    }
    return $comment;
}
add_filter('preprocess_comment', 'auto_comment_image');