GG资源网

WPKuaiYun插件实现WordPress静态文件同步至景安快云对象存储(wordpress抓取文章第一张远程图片保存到本地的方法)

WPKuaiYun插件实现WordPress静态文件同步至景安快云对象存储

老部落在之前的项目发布中相继发布WPCOS和WPOSS插件,分别实现网站静态文件与腾讯云COS和阿里云OSS对象存储分离管理,一般而言如果我们使用阿里云服务器,可以配对阿里云OSS,腾讯云服务器配对使用腾讯云COS,当然有些情况也列外的,比如我们网站服务器用的香港或者海外机房,希望网站速度提升可以使用到对象存储,这个就部分哪家服务商,根据你喜欢就可以。

这里老赵同学基于此再开发基于景安快云对象存储的WordPress插件,虽然景安服务商不如阿里、腾讯知名,但是还是有不少的用户群的。我们在使用景安快云VPS、服务器需要提速的时候,可以一并连带WPKuaiYun插件开通快云对象存储使用,使得网站图片等静态资源分离,提高静态资源的管理和提高网站速度。

通过许多天的调试和兼容,目前这个WordPress基于景安快云对象存储的WPKuaiYun插件发布,且通过WordPress官方审核在平台中可以直接搜索下载使用。在这篇文章中,针对WPKuaiYun插件的安装和使用进行详细的介绍,如果有需要的网友可以使用,遇到问题烦请反馈让老赵同学修改、完善。

第一、插件功能与下载安装

1、WPKuaiYun插件功能

简而言之,我们可以将WordPress中的图片、附件等文件上传到景安快云对象存储中,实现网站文件与静态文件分离管理,提高网站速度。当然,也可以同步将静态文件保存到本地。

2、插件下载与安装

我们可以在WordPress安装后台搜索 \"wpkuaiyun\" 关键字,然后搜索下载。

这个我们应该是会的,激活启动之后我们可以在左侧菜单看到\"WPKuaiYun设置\"选项。

第二、WPKuaiYun插件设置参数

我们可以看到插件需要的参数,这里我们先不去管参数是什么,先看下界面。

是不是感觉很清晰?需要这么多参数信息,哪里得到呢?当然是需要在景安快云对象存储中获取。

第三、景安快云对象存储参数获取

这里不多废话,如果我们需要用那就需要注册景安账户,然后去开通快云对象存储。【关于景安服务器与对象存储产品和活动介绍】

这里我就不多介绍,你该怎么开通就怎么开通,可以按照流量计费的,可以根据流量或者存储多少开通配置的。

我们需要开通空间,空间名是我们上面参数需要用到的。读写权限设置 公共读写

我们在空间管理可以看到上图【获取KEY值】按钮。

没错,这个也是我们需要的Access_key、Secret_key、获取凭证、获取Resource来源,这个四项都是需要的,上面对应插件参数填写进去。

这里我们还需要给这个快云对象存储设置绑定域名,需要是自己的域名,而且是接入景安白名单的。这样才能将对象存储拥有自己的地址。

这个我我们应该会的吧?绑定域名然后别名解析指定的,然后生效。一定要是他们白名单的域名,要不是无法访问的。

最后,这样我们应有的参数是不是都得到?这样我们依次填写到插件配置文件中就可以访问。在上图中,我故意做个示范,不要把本地文件夹和上面远程地址填写错,很多人容易出错。我们一定要统一,建议根据示范用wp-content/uploads后缀,这样以后复原到本地也简单。

注意:本地文件夹,我们一般填写\"wp-content/uploads\",在上面URL前缀/本地文件夹使用\"http(s)://我们自定义的域名/wp-content/uploads\",这样的目的是以后我们迁移到本地的时候方便。

如果我们新网站那就直接这么操作后不要迁移已有的本地文件,如果我们是老网站,你使用对象存储之后,你还需要将以前的本地图片迁移到快云对象存储中,然后批量修改数据库文章图片地址。这个我们具体也可以参考\"完整WordPress启用WPOSS存储插件绑定阿里云OSS云存储【图文】\"提到的方法。

wordpress抓取文章第一张远程图片保存到本地的方法

在某些项目中,网站允许用户使用外链图片发布文章,或者处于某些特殊原因,网站希望抓取文中的第一张远程图片作为特色图片,并像QQ空间一样,将这张图片保存到本地,并插入到数据库中。总之,完成一系列动作之后,网站希望发现这张原本是远程外链的图片被放在本地,并成这个动作我们使用一个hook来实现:

add_action(\'publish_post\', \'fetch_images\',999);

再创建一个fetch_images函数,来实现本文所说的所有功能。

function fetch_images( $post_ID ){
if ( defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE ) return;
if ( !current_user_can(\'edit_post\', $post_ID) ) return;
$post = get_post($post_ID);

接下来,我们要获取文章内容中的第一张图片:

$first_image = \'\';
preg_match(\'/<img.+src=[\\\'\\\"]([^\\\'\\\"]+)[\\\'\\\"].* \\/>/i\',$post->post_content,$images);
if(!empty($images))foreach($images as $image){
if(strpos($image,\'http\') === 0){
$first_image = $images[1];
break;
}
}

但实际上,通过上述的代码获得的图片src可能也是有问题的,或者根本没有抓取到数据。不过我们先不考虑这些问题,我们先实现本文的目标。

接下来就是关键代码一,它要实现“抓取-保存到本地”两个功能:

$get = wp_remote_get( $get_image_src );
$type = wp_remote_retrieve_header( $get, \'content-type\' );
$file_name = basename($get_image_src);
$file_content = wp_remote_retrieve_body($get);
$mirror = wp_upload_bits($file_name,null,$file_content);

这个地方有一个变化,上面我们获得了$first_image,这个地方的$get_image_src是上述得到的要抓取的远程图片地址。

在WordPress中,提供了wp_remote_get、wp_remote_retrieve_body等原创抓取和信息获取函数,你可以查看官方文档以了解和remote相关的函数。wp_upload_bits则将抓取到的图片的二进制内容保存到本地,根据其文件类型,最终成为本地保存的图片,并将保存完后获得的本地图片信息保存在$mirror中。

既然已经保存到本地了,接下来就是将图片信息保存到数据库中。

wordpress抓取文章第一张远程图片保存到本地的方法 (https://www.wpmee.com/) WordPress使用教程 第1张

由于网站搬家,部分链接失效,如无法下载,请联系站长!谢谢支持!
1. 带 [亲测] 说明源码已经被站长亲测过!
2. 下载后的源码请在24小时内删除,仅供学习用途!
3. 分享目的仅供大家学习和交流,请不要用于商业用途!
4. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
5. 本站所有资源来源于站长上传和网络,如有侵权请邮件联系站长!
6. 没带 [亲测] 代表站长时间紧促,站长会保持每天更新 [亲测] 源码 !
7. 盗版ripro用户购买ripro美化无担保,若设置不成功/不生效我们不支持退款!
8. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
9. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
10.如果您购买了某个产品,而我们还没来得及更新,请联系站长或留言催更,谢谢理解 !
GG资源网 » WPKuaiYun插件实现WordPress静态文件同步至景安快云对象存储(wordpress抓取文章第一张远程图片保存到本地的方法)

发表回复

CAPTCHAis initialing...