文档章节

将远程图片保存到wordpress特色图片中,并与文章相关联

喵先生丿
 喵先生丿
发布于 2017/03/01 09:23
字数 536
阅读 111
收藏 0

本篇讲解如何将远程图片保存到wordpress特色图片中,并且与文章相关联.由于特色图片的特殊性,很多朋友对于如何直接自定义保存文章特色图片中一直发愁.

由于wordpress 特色图片的特殊性,这个保存还是比较简单的,为什么说特殊.是因为文章特色图片会与文章一起被保存到wp_posts数据表中.并且占用一条文章资源,这也就是为什么一些朋友使用wordpress发布文章会发现文章ID并不是紧挨着的,而是相差1个或2个数字.这是由于wordpress的自动保存和特色图片占用了这些资源,当然这里不进行讲解如何将这些东西保存到其他表中或者其他的优化方式.

提示

本次将使用到``方法,该方法需要使用wordpress的内置image处理方法.当然这个只是对于直接使用API独立方式.如果是正常引用,那么这个可以不用管.

//引用地址
require_once( ABSPATH . 'wp-admin/includes/image.php' );

代码示例


//测试用例数据

$postArr[ 'img' ] = 'http://cdn.meaoo.cn/1475555917_5126.jpg';//图片LOGO
$postArr[ 'userid' ] = '223';//用户ID 这里的ID是指发布者ID
$postArr[ 'catid' ] = '123';//文章分类ID

//远程图片地址
$filepath = $pos[ 'img' ];
//使用函数将远程图片获取到wordpress服务器端
$get = wp_remote_get ( $filepath );
//获取文件格式
$type = wp_remote_retrieve_header ( $get , 'content-type' );

//判断是否图片格式文件
if( is_numeric(strpos( $type,'image'))){

   //进行文件重命名,并用MD5进行命名混淆
    $file_title = md5 ( date ( 'Ymd' , time () ) . mt_rand ( 1000 , 9999 ) );
    //拼接文件地址
    $file_name = $file_title . substr ( $filepath , strrpos ( $filepath , "." ) );
    //
    $file_content = wp_remote_retrieve_body ( $get );
    $mirror = wp_upload_bits ( $file_name , null , $file_content );

    //写入特色图片需要的数据
    $thum[ 'post_author' ] = $userID;//发布者ID
    $thum[ 'post_title' ] = $file_title;//文章标题
    $thum[ 'post_parent' ] = $aid;
    $thum[ 'guid' ] = $mirror[ 'url' ];
    $thum[ 'post_type' ] = 'attachment';
    $thum[ 'post_mime_type' ] = $type;
    $thum[ 'post_status' ] = 'inherit';//文章状态
    //以文章形式写入到数据库
    $attachment_id = wp_insert_post ( $thum );
    set_post_thumbnail ( $aid , $attachment_id );
    update_post_meta ( $aid , '_thumbnail_id' , $attachment_id );

    update_post_meta($attachment_id,'_wp_attached_file', ltrim( wp_upload_dir()['subdir'],'/') .'/'.$file_name );
    $attach_data = wp_generate_attachment_metadata( $attachment_id, ltrim( wp_upload_dir()['path'],'/') .'/'.$file_name );
    wp_update_attachment_metadata( $attachment_id, $attach_data  );
}

© 著作权归作者所有

共有 人打赏支持
喵先生丿
粉丝 3
博文 14
码字总数 5275
作品 0
天津
程序员
WordPress 插件--WeChat Subscribers Lite

这是一个简单通用的微信(weixin)公众平台订阅号专用WordPress插件。现在这个版本的插件只支持普通订阅号,任何人只要以个人身份免费注册微信公众平台就可以足以使用这个插件的全部功能。 这个...

windfarer
2015/03/13
790
0
WordPress 后台文章列表设置文章特色图片(缩略图)

WordPress 允许你为每篇文章设置“特色图片”也就是我们通常说的缩略图,但是默认情况下,你只能在文章编辑页面进行设置,今天倡萌推荐 Easy Thumbnail Switcher 查看,它可以让你直接在后台...

james_laughing
今天
0
0
分享2011年50个最棒的wordpress主题 - 第一部分

日期:2011/10/29 来源:noupe.com 编译:Terry li - GBin1.com 可能会有很多读者愿意花大价钱来购买高质量的独特的wordpress主题,但是对于大多数人来说花40美金来购买优惠的wordpress主题更...

gbin1
2011/10/31
0
0
PHP wordpress xmlrpc 远程上传图片 无效图片 wp.uploadFile

最近我的网站想使用wordpress xmlrpc 远程上传图片,看了好多wordpress xmlrpc 的API说明,也按照接口发送请求,但是图片最后保存下来是无效的图片 有没有朋友可以帮忙解决下! 我的代码: requ...

旺角黑烨
2013/09/15
741
7
分享2011年50个最棒的wordpress主题

日期:2011/10/29 来源:noupe.com 编译:Terry li - GBin1.com 可能会有很多读者愿意花大价钱来购买高质量的独特的wordpress主题,但是对于大多数人来说花40美金来购买优惠的wordpress主题更...

gbin1
2011/10/31
636
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

angular指令监听ng-repeat渲染完成后执行自定义事件方法

今天工作中遇到需要用到ng-repeat遍历渲染完后执行某个操作,angular本身并没有提供监听ng-repeat渲染完成的指令,所以需要自己创建自定义指令。 在ng-repeat模板实例内部会暴露出一些特殊属...

孟飞阳
39分钟前
1
0
URLEncoder和URLDecoder

public static void main(String[] args) { String str1 = "https://test1-life.pingan.com/ilifecore/productMall/loading.html?productId=8000000241&channelCode=XCX00001&productCode=00......

鬼才王
49分钟前
2
0
对象及变量的并发访问-第一篇

方法内部的变量为线程安全变量 “非线程安全”问题存在于“共享变量”中,如果是方法内部的私有变量,则不存在“非线程安全”问题,所得结果也就是“线程安全”的。 package chaprer3;/**...

简心
50分钟前
1
0
程序媛眼中的程序猿原来是这样子的!

一直都想写一篇关于描述程序员的文章,但是一直没能开头,一来因为文笔不好,更主要的原因是貌似对程序员既熟悉又不熟悉,很怕写出来的是以偏概全,给大家造成对程序员的既定印象,不过,管他...

Java小铺
今天
1
0
bean标签

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 bean标签 bean标签中的init-method属性,该属性...

凯哥学堂
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部