

WordPress据悉,新浪博客已经正式宣布“相册”功能下线。截止2019年7月31日24: 00,又一顿免费午餐没了。
如何把新浪相册里的图片下载到本地,替换掉原来的链接,摆在很多使用新浪免费照片床的用户面前,包括我。经过多方寻找和测试,我将与你分享我的最终解决方案。
很多WordPress的插件或者代码在编辑文章的时候可以自动将外部图片下载到本地。最后,我选择了一个叫易复制粘贴的插件。
插件下载
提取代码:khc5
也可以直接将下面的代码添加到当前的主题函数模板functions.php中:
函数ecp_save_post($post_id,$ post){ global $ wpdb;if($ post ->;post _ status = = ‘ publish ‘){ $ p = ‘/& lt;img。*[s]src = & # 091;”|’](.*)[”|’].* & gt/iU ‘;$num = preg_match_all($p,$ post -& gt;post_content,$ matches);if($ num){ $ WP _ upload _ dir = WP _ upload _ dir();set _ time _ limit(0);$ ch = curl _ init();curl_setopt($ch,CURLOPT_HEADER,false);curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);curl_setopt($ch,CURLOPT_MAXREDIRS,20);curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,30);$ ecp _ options = $ _ SERVER & # 091HTTP _ HOST ‘];foreach($ matches & # 091;1]as $ src){ if(isset($ src)& amp;& ampstrpos($src,$ ECP _ options)= = false){ $ file _ info = WP _ check _ filetype(basename($ src),null);if($file _ info & # 091;ext ‘]= = false){ date _ default _ time zone _ set(‘ PRC ‘);$file_name = date(‘YmdHis-‘)。dechex(mt_rand(100000,999999))。。tmp ‘;} else { $ file _ name = dechex(mt _ rand(100000,999999))。’-‘ .basename($ src);} curl_setopt($ch,CURLOPT_URL,$ src);$ file _ path = $ WP _ upload _ dir & # 091;路径’]。’/’ .$ file _ name$img = fopen($file_path,’ WB ‘);curl_setopt($ch,CURLOPT_FILE,$ img);$ img _ data = curl _ exec($ ch);fclose($ img);if(文件存在($文件路径)& amp& amp文件大小($file_path)>0) { $t = curl_getinfo($ch,curl info _ CONTENT _ TYPE);$arr = explode(‘/’,$ t);if (pathinfo($file_path,path info _ EXTENSION)= = ‘ tmp ‘){ $ file _ path = ECP _ handle _ ext($ file _ path,$ arr & # 0911],$ wp _ upload _ dir & # 091path’],$file_name,’ tmp ‘);} elseif (pathinfo($file_path,PATHINFO _ EXTENSION)= ‘ webp ‘ { $ file _ path = ECP _ handle _ ext($ file _ path,$ arr & # 0911],$ wp _ upload _ dir & # 091path’],$file_name,’ webp ‘);} $ post -& gt;post_content = str_replace($src,$ wp _ upload _ dir & # 091网址’]。’/’ .basename($file_path),$ post -& gt;post _ content);$ attachment = ECP _ get _ attachment _ post(basename($ file _ path),$ wp _ upload _ dir & # 091网址’]。’/’ .basename($ file _ path));$ attach _ id = WP _ insert _ attachment($ attachment,ltrim($ WP _ upload _ dir & # 091;subdir’]。’/’ .basename($file_path),’/’),0);$ attach _ data = WP _ generate _ attachment _ metadata($ attach _ id,$ file _ path);$ ss = WP _ update _ attachment _ metadata($ attach _ id,$ attach _ data);} } } curl _ close($ ch);$ wpdb -& gt;更新($ wpdb -& gt;文章,数组(‘ post _ content ‘ = & gt$ post ->;post_content)、数组(‘ ID ‘ = & gt$ post ->;ID));} } }函数ecp_handle_ext($file,$type,$file_dir,$file_name,$ ext){ switch($ ext){ case ‘ tmp ‘:if(rename($ file,str_replace(‘tmp ‘,$type,$ file)){ if(‘ webp ‘ = = $ type){ return ECP _ image _ convert(‘ webp ‘,’ jpeg ‘,$file_dir)。’/’ .str_replace(‘tmp ‘,$type,$ file _ name));}返回$file_dir。’/’ .str_replace(‘tmp ‘,$type,$ file _ name);} case ‘ webp ‘:if(‘ webp ‘ = = $ type){ return ECP _ image _ convert(‘ webp ‘,’ jpeg ‘,$ file);} else { if (rename($file,str_replace(‘webp ‘,$type,$ file)){ return $ file _ dir。’/’ .str_replace(‘webp ‘,$type,$ file _ name);} }默认:返回$ file} }函数ecp_image_convert($from=’webp ‘,$to=’jpeg ‘,$ image){ $ im = imagecreatefromwebp($ image);if (imagejpeg($im,str_replace(‘webp ‘,’ jpeg ‘,$image),100)){ try { unlink($ image);} catch(异常$e) { $error_msg = sprintf(‘删除本地文件%s时出错:%s ‘,$image,$ E-& gt;getMessage());error _ log($ error _ msg);} } image destroy($ im);返回str_replace(‘webp ‘,’ jpeg ‘,$ image);}函数ECP _ get _ attachment _ post($ filename,$ URL){ $ file _ info = WP _ check _ filetype($ filename,null);返回数组(‘ guid ‘ = & gt$url,’ post _ type ‘ = & gtattachement ‘,’ post _ mime _ type ‘ = & gt$ file _ info & # 091type’],’ post _ title ‘ = & gtpreg_replace(‘/。[。]+$/’,”,$filename),’ post _ content ‘ = & gt’,’ post _ status ‘ = & gt继承’);} add_action(‘save_post ‘,’ ecp_save_post ‘,120,2);代码取自上面的插件。
单次操作后,只需要点击更新按钮编辑文章,就可以将文章中的外链图片下载到本地,替换链接。
但是,逐条编辑文章不仅繁琐而且工作量很大。这里教你一个小技巧,你可以批量下载文章里的图片。
插件代码的批量操作不仅可以在正常编辑页面点击更新按钮触发下载功能,还可以在后台所有文章列表页面触发下载功能。原理明白,操作简单。
进入WP后台,文章→所有文章,进入文章管理页面,勾选“标题”选择当前页面所有文章,选择“编辑”点击“应用”按钮。
记住,批量编辑时不要更改任何设置,只需点击“更新”即可。
此过程将触发检查所有选定的文章和导入外部链接图片。
默认情况下,每页只显示20篇文章。如果你的文章比较多,想一次处理更多的文章,可以打开右上角的“显示选项”,将“每页项数”调整为9999。当然文章数量要根据你的主机配置来调整。一次处理太多物品会让主机耗尽资源,造成停机。
注意:开始主题用户需要在操作前进入主题选项→辅助功能,勾选“仅临时使用文章进行快速编辑和常规发布,防止文章选项丢失”,否则批量更新后,之前勾选的文章设置和手动添加的缩略图将失效,请切记!
提示:操作前请提前备份好数据库,以防万一,祝大家逃生成功!
还有一个插件可以自动下载外部图片:自动上传图片。
但是插件替换原图的时候,图片的命名和链接都有问题。也可以测试一下。免费床位推荐
不怕再次逃离画面的朋友可以看看下面的免费图片床。
免费的床,国外不稳定,随时会被河蟹,国内不安全,随时会跑掉,保重!
https://imgchr.com/
https://sm.ms/
http://www.imagebam.com/
http://tinypic.com/
https://www.poco.cn/
https://www.fotki.com/
http://upload.geminight.com/
https://x.yupoo.com/
http://www.imageshack.us/
https://imgchr.com/
https://ddd.dog/
http://jpgbox.com/
如何给WordPress插件添加网站加速
在当今的互联网时代,网站速度已成为用户体验和搜索引擎优化的关键因素之一。如果您正在使用WordPress构建网站,为您的网站添加网站加速功能非常重要。本文将向您展示如何向WordPress插件添加站点加速,并提供相关的代码示例。
首先,了解网站加速的原理
在我们开始之前,让我们了解网站加速的原理。网站加速的目的是通过优化网站的加载速度来提高用户体验和SEO排名。为了实现这一目标,我们需要使用一些常见的加速方法,例如:
1.使用CDN(内容分发网络):通过缓存网站的静态资源,如图片、CSS和JavaScript文件,可以加快这些文件的下载和加载速度,提高整个网站的访问速度。
2.启用浏览器缓存:通过为网站的静态文件设置适当的过期时间,您可以让浏览器缓存这些文件,从而减少服务器请求和传输时间。
3.压缩文件:通过压缩HTML、CSS和JavaScript文件,可以减小它们的大小,从而提高文件的下载和加载速度。
二、为WordPress插件添加网站加速功能的步骤
以下是将网站加速添加到WordPress插件的步骤:
1.选择好的CDN服务提供商:市场上有许多CDN服务提供商可供选择,例如CloudFlare和MaxCDN。根据您的需求和预算选择合适的CDN提供商。
2.注册和设置CDN服务:根据所选CDN提供商提供的指南注册和设置您的CDN服务。此步骤包括验证您的域名和修改DNS设置。
3.配置WordPress插件使用CDN:有一些WordPress插件可以帮助您轻松配置和管理CDN。W3 Total Cache是常用的插件之一。安装并激活插件后,您可以在插件设置页面上找到CDN选项,包括您使用的CDN供应商的设置参数。
4.添加CDN设置参数:根据CDN供应商提供的指南填写CDN设置页面中的参数。参数通常包括CDN地址、加速域名、密钥等。
5.启用浏览器缓存:W3 Total Cache插件还提供了启用浏览器缓存的选项。在插件的设置页面中,您可以找到浏览器缓存选项并启用该功能。这将为网站的静态文件设置适当的到期时间,以便浏览器可以缓存这些文件。
6.压缩文件:W3 Total Cache插件还可以帮助您压缩网站的静态文件。在插件的设置页面中,您可以找到压缩文件的选项并启用该功能。这将自动压缩HTML、CSS和JavaScript文件并减小它们的大小。
第三,代码示例
以下是使用W3 Total Cache插件为WordPress插件添加站点加速功能的代码示例:
/* * *设置CDN加速*/function my _ CDN _ settings(){ define(‘CDN _ URL‘,‘https://CDN . example . com/‘);define(‘CDN _ COOKIE _ DOMAIN‘,$ _ SERVER【‘HTTP _ HOST‘】);} add _ action(‘init’,‘my _ cdn _ settings’);/* * *启用浏览器缓存*/function my _ browser _ cache _ settings(){ header(“expires:“。GM date(“d,dmyh: i: s“,time()+365 * 24 * 60 * 60)。“GMT“);header(“Cache-Control:public,max-age = 31536000“);} add _ action(‘send _ headers’,‘my _ browser _ cache _ settings’);/* * * compress html */function my _ compress _ html(){ ob _ start(‘my _ html _ compress‘);} function my _ HTML _ compress($ HTML){ return preg _ replace(array‘/‘,//delete HTML comments‘/s { 2,}/‘,//delete extra spaces‘/‘,//delete tabs‘/?/‘、//删除换行符)、数组(‘、//空“”、//一个空格“”、//空“”、//空)、$ html);} add _ action(‘get _ header’,‘my _ compress _ html’);本文介绍了在WordPress插件中添加网站加速功能的步骤,并提供了相关代码示例。通过优化网站的加载速度,您可以提高用户体验和SEO排名,从而使您的网站更具竞争力。希望这篇文章能帮到你,祝你加速成功!
以上就是如何给WordPress插件添加网站加速功能的细节。更多内容请关注草根吧VPS其他相关文章!







