VPS参考测评推荐
专注分享VPS主机优惠信息
衡天云优惠活动
华纳云最新优惠促销活动
jtti最新优惠促销活动

从WordPress文章中批量导入外部链接图片到本地。

locvps
主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情!
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作

从WordPress文章中批量导入外部链接图片到本地。-主机参考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后台,文章→所有文章,进入文章管理页面,勾选“标题”选择当前页面所有文章,选择“编辑”点击“应用”按钮。

从WordPress文章中批量导入外部链接图片到本地。-主机参考记住,批量编辑时不要更改任何设置,只需点击“更新”即可。

此过程将触发检查所有选定的文章和导入外部链接图片。

默认情况下,每页只显示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文章中批量导入外部链接图片到本地。 https://zhujicankao.com/90134.html

【腾讯云】领8888元采购礼包,抢爆款云服务器 每月 9元起,个人开发者加享折上折!
打赏
转载请注明原文链接:主机参考 » 从WordPress文章中批量导入外部链接图片到本地。
主机参考仅做资料收集,不对商家任何信息及交易做信用担保,购买前请注意风险,有交易纠纷请自行解决!请查阅:特别声明

评论 抢沙发

评论前必须登录!