搬码资源网广告位 搬码资源网广告位

WordPress 允许非管理员用户在评论中插入图片

下面是搬码源码网 abnma.com 通过网络收集整理的代码片段。搬码源码网小编现在分享给大家,也给大家做个参考。

虽然 wordpress 评论系统一直让用户所诟病,但是作为网站的重要组成部分,你又不能完全的放弃它。毕竟这是网站访客/用户与你交流沟通的重要方式。那讲到这里,问题来了:除了基本的文字评论以外,用户可以上传图片评论吗?今天匿名在评论里插入图片的时候,突然发现我插的图片被吞了…尴尬了,原来这么久以来我的插入图片这个按钮功能是“不起作用”的…

然后百度了下,果然有结果了:在 wordpress 中,默认情况下非管理员用户的评论中是不能插入图片的,这是权限设置问题。非管理员权限用户使用该标签会被过滤,因为 img 不在 allow tag 列表里。以下就介绍几种使非管理员用户也能在评论中插入图片的方法,请大家自行取舍~

方法一

打开 wordpress 程序 wp-includes/kses.PHP 文件,搜索关键词: $allowedtags,大约 419 行,增加对 img 标签的支持,如下:

$allowedtags = array(

‘a’ => array(

‘href’ => true,

‘title’ => true,

),

‘img’ => array (

‘src’ => array (),’alt’ => array ()

),

‘abbr’ => array(

‘title’ => true,

注意:这个方法有个弊端,每次升级 wordpress,都必须进行再次的修改!期待高手改进此方法!(已于 2018058 自行解决了,请直接看下面方法 5 的改进版!)

方法二

使用来添加评论图片,首先,在 functions.PHP 中加入下面的代码:

/**

* wordpress中如何允许非管理员用户在评论中插入图片

*/

function lxtx_embed_images($content) {

// $content = preg_replace(‘/*(.*?)([/img)?]/e’,'”<img src=”$1″ alt=”” . basename(“$1”) . “” />”‘,$content);

$content = preg_replace_callback(“/*(.*?)([/img)?]/”,function($r){ return ‘<img src=”‘.$r[1].'” alt=”‘.basename(“$r[1]”).'” />’; },$content);

return $content;

}

add_filter(‘comment_text’,’lxtx_embed_images’);

然后,使用来添加图片当然,为了使用方便贴这个

function embedImage() {

var URL = prompt(‘请输入图片 URL 地址:’,’http://’);

if (URL) {

document.getElementById(‘comment’).

value = document.getElementById(‘comment’).value + ‘‘ + URL + ‘” />’;

}

}

再打开主题评论框所在的文件(如:comment.PHP 等),在适当的位置加入一个“插入图片”按钮:

<a href=”javascript:embedImage();”>插入图片</a>

方法三

将评论图片地址自动转化为图片,如同煎蛋网一样,将评论的图片地址自动转化为图片。实现方法有 2 种。

① 所有评论图片地址自动转化为图片:

/**

 * wordpress中如何允许非管理员用户在评论中插入图片

 */

add_action(‘comment_text’,’comments_embed_img’,2);

function comments_embed_img($comment) {

$size = auto;

$comment = preg_replace(array(‘#(http://([^s]*).(jpg|gif|png|JPG|GIF|PNG))#’,’#(https://([^s]*).(jpg|gif|png|JPG|GIF|PNG))#’),'<img src=”$1″ alt=”” width=”‘.$size.'” height=”” />’,$comment);

return $comment;

}

② 指定特定文章中或所有文章中的评论图片地址自动转化为图片:

/**

 * wordpress中如何允许非管理员用户在评论中插入图片

 */

define(‘ALLOW_POSTS’,”);

function lxtx_fa_comment_image( $comment ) {

$post_ID = $comment[“comment_post_ID”];

$allow_posts = ALLOW_POSTS ? explode(‘,’,ALLOW_POSTS) : array();

if(in_array($post_ID,$allow_posts) || empty($allow_posts) ){

global $allowedtags;

$content = $comment[“comment_content”];

$content = preg_replace(‘/(https?://S+.(?:jpg|png|jpeg|gif))+/’,'<img src=”$0″ alt=”” />’,$content);

$allowedtags[‘img’] = array(‘src’ => array (),’alt’ => array ());

$comment[“comment_content”] = $content;

}

return $comment;

}

add_filter(‘preprocess_comment’,’lxtx_fa_comment_image’);

注:ALLOW_POSTS 里定义的是允许自动贴图的文章或页面的 post_ID ,多篇文章或页面用,隔开即可,如需所有文章和页面起效则定义为空即可。

方法四

/**

 * wordpress中如何允许非管理员用户在评论中插入图片

 */

function lxtx_allowedtags_img() {

global $allowedtags;

$allowedtags[‘img’] = array(‘class’=>true,’src’=>true);

// $allowedtags[‘pre’] = array(‘class’=>array());

}

add_action(‘comment_post’,’lxtx_allowedtags_img’);

方法五

/**

* wordpress中如何允许非管理员用户在评论中插入图片

*/

function my_allowed_edittag() {

define(‘CUSTOM_TAGS’,true);

global $allowedposttags,$allowedtags;

$allowedposttags = array(

‘strong’ => array(),

’em’ => array(),

‘ol’ => array(),

‘li’ => array(),

‘u’ => array(),

‘ul’ => array(),

‘blockquote’ => array(),

‘code’ => array(),

‘pre’ => array(

‘style’ => true,

‘class’ => true,

‘a’ => array(

‘href’ => array (),

‘title’ => array ()),

‘img’ => array(

‘src’ => array ()),

);

 

$allowedtags = array(

‘strong’ => array(),

‘pre’ => array(),

);

}

add_action(‘init’,’my_allowed_edittag’,10);

注意:这个方法允许的标签全都得自己定义。所以我对该方法进行了改进如下,当然,如果想允许更多 html 标签和属性,就请在下面代码中自行添加了:

/**

* wordpress中如何允许非管理员用户在评论中插入图片

*/

function lxtx_allowed_html_tags() {

global $allowedtags;

$allowedtags[‘img’] = array(

‘src’ => true,

‘alt’ => true,

‘class’ => true

);

}

add_action(‘init’,’lxtx_allowed_html_tags’,10);

以上是搬码源码网(abnma.com)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。如果觉得搬码源码网网站内容还不错,欢迎将搬码源码网网站推荐给程序员好友。

声明:
本站发布的文章及附件仅限用于学习和研究目的;不得将上述内容用于商业或非法用途,否则后果请用户自负。
本站资源来自网络收集,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。
如果您喜欢该程序,请支持正版软件,得到更好的正版服务。
本文链接:https://www.abnma.com/11046.html,转载请注明出处。
如有侵权,请邮件联系我们删除处理。

0
搬码资源网广告位

评论0

请先

没有账号? 注册  忘记密码?