文档章节

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

喵先生丿
 喵先生丿
发布于 2017/03/01 09:23
字数 536
阅读 246
收藏 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
天津
程序员
私信 提问
加载中

评论(0)

wordpress自动保存远程图片插件 DX-auto-save-images

wordpress自动保存远程图片插件DX-auto-save-images 解决了保存文章就可以自动将远程图片保存到你的服务器上了。 具体操作步骤如下: 1、安装启用wordpress自动保存远程图片到服务器插件DX-...

ECshop商城二次开发博客
2013/11/28
0
0
wordpress插件:multiple post thumbnails(可为文章添加多个特色图片)

我们经常会给wordpress的文章加上特色图片来实现日志缩略图的需求,但是很多时候一张图片并不能够完美而又全面的表达我们wordpress文章的内容,这时候您可能就会需要这样一个能让wordpress同...

osc_6odm1qf4
2019/11/12
3
0
hjthjthjt/RnMaterial

RnMaterial For WordPress RnMaterial 是一款基于 hexo-theme-material 的 WordPress 主题。 演示站点 甲烃气瓶 2.0.1 更新日志 (修复)搜索页面的头像 (修复)侧边栏头图 (新增)未设置特色图片...

hjthjthjt
2018/12/19
0
0
Wordpress如何存储远程附件到oss

前言 网站远程附件功能是指将用户上传的附件直接存储到远端的存储服务器,一般是通过FTP的方式存储到远程的FTP服务器。 目前Discuz论坛、phpwind论坛、Wordpress个人网站等都支持远程附件功能...

任远
2018/09/26
52
0
网站漏洞检测之WordPress 5.0.0 修复方案

2019年正月刚开始,WordPress最新版本存在远程代码注入获取SHELL漏洞,该网站漏洞影响的版本是wordpress5.0.0,漏洞的产生是因为image模块导致的,因为代码里可以进行获取目录权限,以及文件...

网站安全
2019/02/24
24
0

没有更多内容

加载失败,请刷新页面

加载更多

MySQL Not exists - 一个你不需要会的语法

not exists - 就是字面意思: 不存在. A表里某个字段的值不在B表里; 返回符合条件的A表记录. 如: select a.id, a.codefrom table_a a where not exists ( select b.code from table_...

园领T
30分钟前
19
0
零基础Python学习路线及每个阶段学习目标

零基础Python学习路线及阶段学习目标,首先应该夯实Python核心基础、Web前端编程、Django开发框架、Flask开发框架、爬虫与数据分析等知识,理解机器学习相关的基本概念及系统处理流程。 零基...

每天学Python
32分钟前
18
0
编译flink 源码

首先clone源码 git clone git://github.com/apache/flink.git 然后切换到blink分支 git checkout blink 编辑 flink-filesystems 下的pom文件,注释掉 mapr,如下 <modules><module......

jingshishengxu
36分钟前
28
0
springBoot之配置文件的读取以及过滤器和拦截器的使用

springBoot之配置文件的读取以及过滤器和拦截器的使用 前言 在之前的学习springBoot中,成功的实现了Restful风格的基本服务。但是想将之前的工程作为一个项目来说,那些是仅仅不够的。可能还...

鹏十二
52分钟前
33
0
Springboot在Idea Intellij汉字Unicode读取乱码问题

问题核心:Unicode编码中的字母需要小写。比如\u8bbe\u5907\u53f7 首先,了解清楚Unicode编码是什么东西。请读者自己搜索。 然后,我们要清楚springboot是怎么加载配置文件的。兴趣的读者可以...

sunranhou
57分钟前
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部