七牛镜像存储 WordPress 插件的第三方开发接口

我的开发的七牛镜像存储 WordPress 插件,除了原来强大的功能之外,还提供了很多开发的接口,用于第三方来根据自己的业务来对插件的功能进行定制开发。

这些接口都是使用标准的 WordPress filter 和 action hook 模式写的,只要你熟悉 WordPress 插件的开发,你会非常容易用上这些接口,今天就给大家介绍下这些接口和一些应用实例,当然你觉得插件中还应该提供哪些接口,也可以和我说:

缩略图接口

如果你使用七牛镜像存储 WordPress 插件的 wpjam_post_thumbnail() 这个函数来显示日志缩略图的话,默认获取缩略图的顺序是:特色图片 > 标签缩略图 > 第一张图片 > 分类缩略图 > 默认缩略图,如果你的缩略图由于历史遗留原因是使用自定义字段来设置的,你可以使用 wpjam_pre_post_thumbnail_uri 这个接口来使得这个函数能够用上你的缩略图(假设自定义字段为 thumb),具体代码如下:


add_filter('wpjam_pre_post_thumbnail_uri','wpjam_pre_post_thumbnail_uri_by_custom_fied',10,2);
function wpjam_pre_post_thumbnail_uri_by_custom_fied($false, $post){
	if($post_thumbnail = get_post_meta($post->ID, 'thumb', true){
		return $post_thumbnail;
	}
	return $false;
}

同样还有一个缩略图接口是:wpjam_post_thumbnail_uri,他们之间唯一的区别是,wpjam_pre_post_thumbnail_uri 是在使用第一张图片之前,wpjam_post_thumbnail_uri 是之后。

默认缩略图接口

我们在七牛插件设置界面,可以设置默认的缩略图,如果我们想更方便地定制默认缩略图,比如类似我爱水煮鱼博默认缩略图是四张图片中随机选择一张,可以使用 wpjam_default_thumbnail_uri 这个接口:


add_filter('wpjam_default_thumbnail_uri','wpjam_default_thumbnail_uri');
function wpjam_default_thumbnail_uri($post_thumbnail_uri){

	$default_post_thumbnails = array(
		'http://wpjam.qiniudn.com/wpjam/banner/wp-blue-640x960.png',
		'http://wpjam.qiniudn.com/wpjam/banner/wp-dkblue-blue-640x960.png',
		'http://wpjam.qiniudn.com/wpjam/banner/wp-dkblue-orange-640x960.png',
		'http://wpjam.qiniudn.com/wpjam/banner/wp-orange-640x960.png'
	);

	shuffle($default_post_thumbnails);
	return $default_post_thumbnails[0];
}

镜像远程图片到七牛接口

在后台开启保存远程图片之后之后,所有的远程图片的图片都会自动镜像到七牛,当然后台已经提供选项,让你输入一些域名,这些域名下面的图片不会自动镜像到七牛。但是如果你想某篇文章下的外链图片不想自动镜像到七牛,我们可以使用 pre_qiniu_remote 这个接口来设置(假设这篇文章的 ID 是 1234):


add_filter('pre_qiniu_remote','wpjam_pre_qiniu_remote_by_post_id',10,2);
function wpjam_pre_qiniu_remote_by_post_id($false, $image_url){
	if(get_the_ID() == '1234'){
		return true;
	}
	return $false;		
}

只要 return true,就不自动镜像到七牛,当然你也可以根据日志发布时间,比如2013年之前发布的日志里面的远程图片不自动镜像到七牛,具体代码这里就不详细写了。

七牛水印接口

在后台设置了水印图片之后,所有的图片的图片都会自动加上水印,但是如果你想某些图片不加水印,比如2014年9月份之前的文章里的图片你已经使用其他插件加了水印了,不想重复加水印,我们可以使用 pre_qiniu_watermark 这个接口来设置:

add_filter('pre_qiniu_watermark','wpjam_pre_qiniu_watermark_by_post_date',10,2);
function wpjam_pre_qiniu_watermark_by_post_date($false, $image_url){
if(get_the_date("Y-m-d") < '2014-09-01'){ return true; } return $false; } [/code]

网页 HTML 代码接口

七牛插件主要原理是将 WordPress 输出的 HTML 中的本地静态文件资源替换成七牛的 CDN 资源,如果你想对 WordPress 输出的 HTML 进一步处理,比如把输出的 HTML 代码压缩下,去掉多余的空行和空格等,可以使用 wpjam_html_replace 接口进行处理:

add_filter('wpjam_html_replace','wpjam_html_replace');
function wpjam_html_replace($html){
$html = preg_replace(
array('/\>[^\S ]+/s', '/[^\S ]+\\n", "\n<"), $html ); return $html; } [/code] 也可以把一些图片 JS 或者 CSS,单独进行替换,具体就看你的业务场景了。 最后下载: [list] 七牛镜像存储 WordPress 插件
七牛镜像存储 WordPress 插件使用指南
[/list]

热门文章