这个举措咱们应用一个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抓取文章**张远程图片保存到本地的方法》的一些看法。更多内容请查看本栏目更多内容!
WordPress 的自定义字段就是文章的 meta 信息(元信息),利用这个性能,能够扩大文章的性能,是学习 WordP...
comments-ajax.js在cdn缓存后,很多人遇到无奈(应用ajax)回复的成绩。对此,我之前的做法只是制止cdn缓存...
我的优化步骤是: 1.紧缩CSS和JS文件,并修正一局部插件,优化页面的载入过程 普通需求另外加载JS或许CSS的...
【阐明】 反省以后文章能否置顶。前往值TRUE 或许 FALSE. 【用法】 复制代码代码如下:<?php is_sticky($pos...
友谊链接关于一个每个独立博客来说能够说是必需的,有不少人抉择在侧边栏退出友谊链接栏目,但建设一个独立...
WordPress 简码是一品种似于论坛标签的货色,格局相似于把尖括号换成中括号的 Html 标签。简码很多人叫做短...