wordpress抓取文章第一張遠程圖片保存到本地的方法
這個動作我們使用一個hook來實現(xiàn):
add_action('publish_post', 'fetch_images',999);
再創(chuàng)建一個fetch_images函數(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;
}
}
但實際上,通過上述的代碼獲得的圖片src可能也是有問題的,或者根本沒有抓取到數(shù)據(jù)。不過我們先不考慮這些問題,我們先實現(xiàn)本文的目標。
接下來就是關鍵代碼一,它要實現(xiàn)“抓取-保存到本地”兩個功能:
$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等原創(chuàng)抓取和信息獲取函數(shù),你可以查看官方文檔以了解和remote相關的函數(shù)。wp_upload_bits則將抓取到的圖片的二進制內(nèi)容保存到本地,根據(jù)其文件類型,最終成為本地保存的圖片,并將保存完后獲得的本地圖片信息保存在$mirror中。
既然已經(jīng)保存到本地了,接下來就是將圖片信息保存到數(shù)據(jù)庫中。
上一篇:不使用wordpress插件添加頁面關鍵詞和描述信息
欄 目:WordPress
下一篇:WordPress中讓Widget 標題支持簡單的HTML標簽
本文標題:wordpress抓取文章第一張遠程圖片保存到本地的方法
本文地址:http://mengdiqiu.com.cn/a1/WordPress/12789.html
您可能感興趣的文章
- 05-31wordpress修改后臺登錄地址教程
- 05-31WordPress自定義用戶頭像實現(xiàn)代碼
- 01-11修改wordpress上傳臨時目錄解決wordpress無法安裝插件包的方法
- 01-11WordPress增加文章排序方式
- 01-11自己做wordpress評論插件修改評論樣式(兩步美化評論內(nèi)容)
- 01-11wordpress get
- 01-11wordpress獲取文章評論數(shù)過濾掉作者代碼分享
- 01-11在wordpress文章末尾添加內(nèi)容的簡單方法
- 01-11不用wordpress插件顯示文章瀏覽統(tǒng)計功能代碼修改(原理分析)
- 01-11wordpress dynamic


閱讀排行
本欄相關
- 05-31wordpress修改后臺登錄地址教程
- 05-31WordPress自定義用戶頭像實現(xiàn)代碼
- 01-11WordPress增加文章排序方式
- 01-11修改wordpress上傳臨時目錄解決wordpre
- 01-11wordpress get
- 01-11自己做wordpress評論插件修改評論樣式
- 01-11在wordpress文章末尾添加內(nèi)容的簡單方
- 01-11wordpress獲取文章評論數(shù)過濾掉作者代
- 01-11wordpress dynamic
- 01-11不用wordpress插件顯示文章瀏覽統(tǒng)計功
隨機閱讀
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10C#中split用法實例總結
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 04-02jquery與jsp,用jquery
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10delphi制作wav文件的方法
- 01-10使用C語言求解撲克牌的順子及n個骰子