文档章节

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

喵先生丿
 喵先生丿
发布于 2017/03/01 09:23
字数 536
阅读 107
收藏 0
点赞 0
评论 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 ⋅ 0

15款jQuery幻灯片插件

幻灯片效果通常用于展示相册图片或特色推荐内容。一个漂亮的幻灯片更能吸引访客的注意力。本文里面,收集了15款jQuery幻灯片插件,让你的图片展示更漂亮,让你的特色内容更吸引人。如果你是W...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

PHP wordpress xmlrpc 远程上传图片 无效图片 wp.uploadFile

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

旺角黑烨 ⋅ 2013/09/15 ⋅ 7

DragonFK/WP2OSC

#7月18号更新 新增导入csdn博客功能。改名为wp2blog。 #WP2blog WP2blog是一个可以把Wordpress博客的文章有选择的导入OSChina、csdn的博客中。 WP2blog使用纯php代码,结合Wordpress自身的函...

DragonFK ⋅ 2015/07/04 ⋅ 0

cnblogs2wp

当前插件可以将博客园(cnblogs.com)以及开源中国(oscchina.net)博客导出的文章数据导入wordpress,系统会自动处理提交的数据文件。可下载远程图片至wordpress博客中,也可以选择作者以及...

李惟 ⋅ 2014/11/23 ⋅ 0

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

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

gbin1 ⋅ 2011/10/31 ⋅ 0

分享2011年50个最棒的wordpress主题

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

gbin1 ⋅ 2011/10/31 ⋅ 0

WordPress 开启日志缩略图 以及不用插件的程序使用方法

很多 WordPress 主题,特别是那些杂志型的主题,会给每篇日志加上一张缩略图,这种展现方式一般用在首页,可能单独出现,或者和日志摘要一起。但是目前位置没有一个标准的方法去实现日志缩略...

李佳顺 ⋅ 2012/11/14 ⋅ 0

搭建个人博客 WordPress

大纲: 一、概述 二、LAMP环境 三、安装WordPress 注,操作系统: CentOS 6.5 x86_64(64位)。 一、概述 WordPress 是一款非常流行的开源博客应用,用户可以在支持PHP和MySQL数据库的服务器...

skypeGNU1 ⋅ 2016/03/29 ⋅ 0

静态网站在腾讯云上的托管

版权声明:本文由腾讯云原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/191 来源:腾云阁 https://www.qcloud.com/community 接下来,将以一个WordPre...

偶素浅小浅 ⋅ 2016/11/10 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

1.01-StringUtils的使用

import org.apache.commons.lang.StringUtils; 一、StringUtils 常用的方法: 1. 判断某一字符串是否为空 , 为空的标准是 str==null 或 str.length()==0 StringUtils.isEmpty(null) ==>tr......

静以修身2025 ⋅ 25分钟前 ⋅ 0

几道Spring 面试题

1、BeanFactory 接口和 ApplicationContext 接口有什么区别? ApplicationContext 接口继承BeanFactory接口 Spring核心工厂是BeanFactory BeanFactory采取延迟加载,第一次getBean时才会初始...

职业搬砖20年 ⋅ 26分钟前 ⋅ 0

包饺子

http://storage.slide.news.sina.com.cn/slidenews/77_ori/2018_24/74766_826131_625489.gif

霜叶情 ⋅ 28分钟前 ⋅ 0

兑吧:从自建HBase迁移到阿里云HBase实战经验

摘要: 业务介绍 兑吧集团包含兑吧网络和推啊网络,兑吧网络是一家致力于帮助互联网企业提升运营效率的用户运营服务平台,提供积分商城和媒体运营服务。推啊网络是一家互动式广告平台,经过多...

猫耳m ⋅ 39分钟前 ⋅ 0

xml解析

方法一: String s_xml1 = "<xml>" + "<head>lalalalal</head>" + "<body>1234</body>" + "</xml>"; try { DocumentBuilderFactory documentBuilderFactory......

GithubXD ⋅ 40分钟前 ⋅ 0

reuse stream

Although Java streams were designed to be operated only once, programmers still ask how to reuse a stream. From a simple web search, we can find many posts with this same issue ......

idoz ⋅ 40分钟前 ⋅ 0

兑吧:从自建HBase迁移到阿里云HBase实战经验

摘要: 业务介绍 兑吧集团包含兑吧网络和推啊网络,兑吧网络是一家致力于帮助互联网企业提升运营效率的用户运营服务平台,提供积分商城和媒体运营服务。推啊网络是一家互动式广告平台,经过多...

阿里云云栖社区 ⋅ 42分钟前 ⋅ 0

从世界杯看国内运动体育社交新能量

2018年世界杯已正式拉开帷幕,一场全世界球迷的狂欢也正式开始。 世界杯影响力:30亿+球迷的狂欢+社交话题 世界杯这个超级IP和对社交网络的引爆让更多的人目光聚焦到国内运动体育社交这个层...

ThinkSNS账号 ⋅ 42分钟前 ⋅ 0

不固定值替换

<?php$arr = 20;$data = str_replace(array(10,20,30,40),array("blue","red","green","yellow"),$arr);print_r($data);...

nsns ⋅ 44分钟前 ⋅ 0

Job for nginx.service failed 错误解决方案

今天刚在centos7上安装了nginx-1.2.11,/etc/init.d/nginx start启动时,出现 Job for nginx.service failed because the control process exited with error code. See "systemctl status n......

河图再现 ⋅ 46分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部