最近用wordpress做了个网站,想复制些新闻过来用,但图片是别人的,就想怎么本地化,在网找到了方法,那就保存一下方法。

复制下面的代码,然后粘贴到你当前WordPress主题的模版函数(functions.php)文件中保存即可。

//将远程图片地址 本地化 这个在前台编辑器中使用时会有问题
function post_save_images($content) {
set_time_limit(240);
global $post;
$post_id = $post->ID;
$preg = preg_match_all('/<img.*?src="(.*?)"/', stripslashes($content) , $matches);
if ($preg) {
$i = 1;
foreach ($matches[1] as $image_url) {
if (empty($image_url)) continue;
$pos = strpos($image_url, get_bloginfo('url'));
if ($pos === false) {
$file = file_get_contents($image_url);
$filename = basename($image_url);
//preg_match( '/(.*?)(\.\w+)$/', $filename, $match );
$im_name = $filename;
$res = wp_upload_bits($im_name, '', $file);
$dirs = wp_upload_dir();
$filetype = wp_check_filetype($file);
$attachment = array(
'guid' => $dirs['baseurl'] . '/' . _wp_relative_upload_path($file) ,
'post_mime_type' => $filetype['type'],
'post_title' => preg_replace('/\.[^.]+$/', '', basename($file)) ,
//preg_replace 搜索并替换
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment($attachment, $file, $id);
$attach_data = wp_generate_attachment_metadata($attach_id, $file);
//wp_generate_attachment_metadata
wp_update_attachment_metadata($attach_id, $attach_data);
//if($i==1 ){
//set_post_thumbnail( $post_id, $attach_id );
//}
$replace = $res['url'];
$content = str_replace($image_url, $replace, $content);
}
$i++;
}
}
remove_filter('content_save_pre', 'post_save_images');
return $content;
}
$current_user = wp_get_current_user();
if ($current_user->user_login == '网站管理员用户名') { //只允许管理员使用本地化,因为前端编辑器使用会报错,使用前先填入自己的管理员用户名
add_filter('content_save_pre', 'post_save_images');
}

纯代码实现wordpress图片本地化【5.2.2版本可用】的更多相关文章

  1. 纯代码实现WordPress上传图片自动重命名的方法

    在我们使用 WordPress 发布文章时,经常都需要添加图片.多媒体什么的.然而,大家都知道 WordPress 是舶来物,对于中文用户来说,我们都会把图片命名为中文的,由于 WordPress 机 ...

  2. AJ学IOS(03)UI之纯代码实现UI——图片查看器

    AJ分享,必须精品 先看效果 主要实现类似看新闻的一个界面,不用拖拽,纯代码手工写. 首先分析app可以很容易知道他这里有两个UILabel一个UIImageView还有两个UIButton 定义UI ...

  3. 纯代码实现wordpress文章隐藏内容评论可见

    在很多网站上都看过这个效果,比如说知己知彼网站,他的部分资源是需要我们评论后才能下载的,那么这个到底有什么用呢,对我而言,除了拿来装逼,还可以增加我的评论数量,不多说,先看看效果: 其实WordPre ...

  4. 纯代码实现WordPress评论回复自动添加@评论者的功能

    先看看效果: 这个有什么用呢?添加了@功能之后那些用户评论之间的层次关系就很清晰了,我们可以清楚地知道这些评论是谁发给谁的. 其实主要是为了提升逼格. 实现方法: 将下面代码加入function.ph ...

  5. ios手势复习值之换图片-转场动画(纯代码)

    目标:实现通过手势进行图片的切换   通过左扫右扫 来实现(纯代码) 添加三个属性 1uiImageView 用来显示图片的view 2 index 用来表示图片的索引 3 ISLeft 判断是不是向 ...

  6. 猫学习IOS(三)UI纯代码UI——图片浏览器

    猫分享.必须精品 看看效果 主要实现相似看新闻的一个界面,不用拖拽,纯代码手工写. 首先分析app能够非常easy知道他这里有两个UILabel一个UIImageView还有两个UIButton 定义 ...

  7. 火车头dede采集接口,图片加水印,远程图片本地化,远程无后缀的无图片本地化

    <?php /* [LocoySpider] (C)2005-2010 Lewell Inc. 火车采集器 DedeCMS 5.7 UTF8 文章发布接口 Update content: 图片加 ...

  8. 分享11个纯css完成的图片浏览器

    图片画廊用于在网站上显示系列图片,它已成为网站重要的组成部分.实现图片画廊有很多种方法,今天要与大家分享的是11个使用纯 CSS 实现的图片画廊,它们代码少,效果炫,加载速度快,希望能对大家有所帮助. ...

  9. ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局

    本文转自 :http://www.cnblogs.com/wendingding/p/3761730.html ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布 ...

随机推荐

  1. .NET 元数据概述

    元数据是一种二进制信息,用以对存储在公共语言运行库可移植可执行文件 (PE) 文件或存储在内存中的程序进行描述.将您的代码编译为 PE 文件时,便会将元数据插入到该文件的一部分中,而将代码转换为 Mi ...

  2. Spring整合Quartz轻松完成定时任务

    一.背景 上次我们介绍了如何使用Spring Task进行完成定时任务的编写,这次我们使用Spring整合Quartz的方式来再一次实现定时任务的开发,以下奉上开发步骤及注意事项等. 二.开发环境及必 ...

  3. WPF---控件模板(一)

    一.控件模板概述 控件的外观通过一个ControlTemplate类型的对象确定,该对象指定了组成一个控件的显示的各种视觉元素. 当WPF创建一个控件时,会创建一个控件类(模板父)的实例,然后实例化通 ...

  4. Linux centos 安装 mysql 5.6

    一.mysql下载 1.方式一(简单粗暴) 直接在linux 目录下wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.43-li ...

  5. win系统打不开CHM文件(例如JDK的API)

    打开文件乱码,打开时弹出乱码 前提说明,存放路径不得有中文,文件名也不能有中文 检查下面三个文件:    hh.exe文件放置电脑 C:\Windows目录下:     hhctrl.ocx ,its ...

  6. Promise.all()

    语法:Promise.all(iterable); 参数:iterable 一个可迭代对象,如 Array 或 String. 返回值:如果传入的参数是一个空的可迭代对象,则返回一个已完成(alrea ...

  7. (原创)[C#] DataTable排序扩展方法

    一,前言 DataTable的应用极其广泛,对DataTable进行排序也有很多方式,每种的实现方式都不难,但是使用起来却比较繁琐,所以本人便写了一个扩展方法,专门对DataTable进行操作. 本篇 ...

  8. JVM(一)类加载器与类加载过程

    JVM是面试必面的一个知识点,也是高级程序员必备的一个技能.以下是JVM整体核心内容,包括类加载系统,运行时数据区内部结构,执行引擎,本地方法接口. 首先来学习类的加载器,虚拟机把描述类的数据从Cla ...

  9. git01_常用命令

    git与github介绍 Git是什么 Git是一个开源的[分布式][版本控制系统],用于敏捷高效地处理任何或小或大的项目 版本控制器 CVS/SVN/Git SVN 客户端/服务器 GIT 客户端/ ...

  10. 【Azure 应用服务】Python flask 应用部署在Aure App Service中作为一个子项目时,解决遇见的404 Not Found问题

    问题描述 在成功的部署Python flask应用到App Service (Windows)后,如果需要把当前项目(如:hiflask)作为一个子项目(子站点),把web.config文件从wwwr ...