wordpress抓取文章第一張遠(yuǎn)程圖片保存到本地的方法
這個(gè)動(dòng)作我們使用一個(gè)hook來實(shí)現(xiàn):
add_action('publish_post', 'fetch_images',999);
再創(chuàng)建一個(gè)fetch_images函數(shù),來實(shí)現(xiàn)本文所說的所有功能。
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);
接下來,我們要獲取文章內(nèi)容中的第一張圖片:
$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;
}
}
但實(shí)際上,通過上述的代碼獲得的圖片src可能也是有問題的,或者根本沒有抓取到數(shù)據(jù)。不過我們先不考慮這些問題,我們先實(shí)現(xiàn)本文的目標(biāo)。
接下來就是關(guān)鍵代碼一,它要實(shí)現(xiàn)“抓取-保存到本地”兩個(gè)功能:
$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);
這個(gè)地方有一個(gè)變化,上面我們獲得了$first_image,這個(gè)地方的$get_image_src是上述得到的要抓取的遠(yuǎn)程圖片地址。
在WordPress中,提供了wp_remote_get、wp_remote_retrieve_body等原創(chuàng)抓取和信息獲取函數(shù),你可以查看官方文檔以了解和remote相關(guān)的函數(shù)。wp_upload_bits則將抓取到的圖片的二進(jìn)制內(nèi)容保存到本地,根據(jù)其文件類型,最終成為本地保存的圖片,并將保存完后獲得的本地圖片信息保存在$mirror中。
既然已經(jīng)保存到本地了,接下來就是將圖片信息保存到數(shù)據(jù)庫中。
相關(guān)文章

CyberPanel安裝WordPress并配置偽靜態(tài)規(guī)則
下面教你如何在 CyberPanel安裝WordPress以及配置偽靜態(tài),需要的朋友可以參考下2023-12-27
這篇文章主要介紹了wordpress無法安裝更新主題插件的解決辦法,需要的朋友可以參考下2020-12-27WordPress必備數(shù)據(jù)庫SQL查詢語句整理
發(fā)現(xiàn)幾條比較實(shí)用的,適合 WordPress 實(shí)用的SQL語句。于是就趕緊收集分享出來了,需要的朋友可以參考下2017-09-23wordpress在安裝使用中出現(xiàn)404、403、500及502問題的分析與解決方法
wordpress是很多新手站長搭建個(gè)人博客最喜愛的程序,但是最近在使用WordPress的時(shí)候遇到了一些問題,所以想著將遇到問題總結(jié)分享出來,下面這篇文章主要給大家介紹了關(guān)于wo2017-08-11WordPress取消英文標(biāo)點(diǎn)符號自動(dòng)替換中文標(biāo)點(diǎn)符號的優(yōu)雅方法
這篇文章主要介紹了WordPress取消英文標(biāo)點(diǎn)符號自動(dòng)替換中文標(biāo)點(diǎn)符號的優(yōu)雅方法,需要的朋友可以參考下2017-04-04- 這篇文章主要給大家介紹了wordpress自定義上傳文件類型的方法,如WordPress默認(rèn)允許上傳 .exe 后綴名的可運(yùn)行文件,那么我們怎么禁止用戶在WordPress后臺發(fā)表文章時(shí)上傳 .e2016-12-19
- 大家可能發(fā)現(xiàn)了當(dāng)實(shí)現(xiàn)了前端用戶中心,后臺控制面板就失去了作用,那么限制其他用戶進(jìn)入后臺控制面板就很有必要了!那么我們要怎么做呢?通過下面這篇文章分享的方法后,只2016-12-19
WordPress實(shí)現(xiàn)回復(fù)文章評論后發(fā)送郵件通知的功能
這篇文章主要介紹了WordPress實(shí)現(xiàn)回復(fù)文章評論后發(fā)送郵件通知的功能,涉及wordpress針對評論與郵件的相關(guān)操作技巧,需要的朋友可以參考下2016-10-11WordPress使用自定義文章類型實(shí)現(xiàn)任意模板的方法
這篇文章主要介紹了WordPress使用自定義文章類型實(shí)現(xiàn)任意模板的方法,可通過自定義文章類型來實(shí)現(xiàn)任意模版的使用,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-10-11WordPress后臺地址被改導(dǎo)致無法登陸后臺的簡單解決方法
這篇文章主要介紹了WordPress后臺地址被改導(dǎo)致無法登陸后臺的簡單解決方法,簡單分析了后臺無法登陸的原因與相應(yīng)的解決方法,涉及針對wordpress配置項(xiàng)的簡單修改,需要的朋友2016-10-11


