给WordPress评论框加个上传图片功能

2022-12-17

WordPress 开启评论功能是为了更好的交互,但默认只能显示文字,如果加上一个上传图片功能,能评论时加上图片,看起来交互更好。具体效果见下图:
给WordPress评论框加个上传图片功能要实现这个功能可以用以下方法,具体可以参见:

1、先在 wordpress 评论模板 comments.php 加上一个上传代码,css 请自行美化:

  1. <div class="upload_img">
  2.   <span>
  3.     <input id="upload_img_api" type="file" accept="image/*">
  4.     <label class="custom-file-label upbtn" id="upload_img_label" for="upload_img_api" ><i class="fa fa-picture-o"></i>传图</label>
  5.   </span>
  6. </div>

2、在 wordpress functions.php 如如下函数,处理评论图片的短代码,第二行代码里 a 链接可以自己处理,我是加了 fancybox 插件点击放大图片:

  1. function boxmoe_comment_upload_img($content) {
  2.   $content = preg_replace('/\[img=?\]*(.*?)(\[\/img)?\]/i', '<a href="$1" rel="external nofollow"  data-fancybox="images" data-fancybox-group="button"><img src="$1" alt="评论" /></a>', $content);
  3.   return $content;
  4. }
  5. add_filter('comment_text', 'boxmoe_comment_upload_img');

3、加入 js 代码 json post 上传图片,下面代码可以放在主题的模块页面:

  1. jQuery('#upload_img_api').change(function() {
  2.   window.wpActiveEditor = null;
  3.   for (var i = 0; i < this.files.length; i++) {
  4.     var f=this.files[i];
  5.     if (!/image\/\w+/.test(f.type)) {
  6.       alert('请选择图片文件(png | jpg | gif)');
  7.       return
  8.     }
  9.     var formData=new FormData();
  10.     formData.append('pic',f); // pic 属于formData对象,这个根据图床的api不同可能需要更换
  11.     jQuery.ajax({
  12.       async:true,
  13.       crossDomain:true,
  14.       url:'https://img.jploc.jsmoe.com/up.php', //图床接口,这是我自己的图床,需要更换成你的图床接口
  15.       type : 'POST',
  16.       processData : false,
  17.       contentType : false,
  18.       dataType: 'json',
  19.       crossDomain: true,
  20.       data:formData,
  21.       beforeSend: function (xhr) {
  22.         jQuery('#upload_img_label').HTML('<i class="fa fa-spinner rotating"></i> Uploading...');
  23.       },
  24.       success:function(res){
  25.         $('textarea[name="comment"]').val($('textarea[name="comment"]').val()+'[img]'+res.data.url+'[/img]').focus();
  26.         jQuery("#upload_img_label").html('<i class="fa fa-check"></i> 上传成功,继续上传');
  27.       },
  28.       error: function (){
  29.         jQuery("#upload_img_label").html('<i class="fa fa-times"></i> 上传失败,重新上传');
  30.       }
  31.     });
  32.   }
  33. });
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

免责声明 1、本站所发布的全部内容源于互联网搬运,(包括源代码、软件、学习资料等)本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的23个小时之内,从您的电脑或手机中彻底删除上述内容。
2、访问本站的用户必须明白,本站对所提供下载的软件和程序代码不拥有任何权利,其版权归该软件和程序代码的合法拥有者所有,如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如本站不慎侵犯您的版权请联系我们,我们将及时处理,并撤下相关内容!敬请谅解! 侵删请致信E-mail:messi0808@qq.com
3、如下载的压缩包需要解压密码,若无特殊说明,那么文件的解压密码则为www.xmy7.com
4、如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

小蚂蚁资源网 cms教程 给WordPress评论框加个上传图片功能 https://www.xmy7.com/zh/cms/25519.html

相关文章