我的开发的七牛镜像存储 WordPress 插件,除了原来强大的功能之外,还提供了很多开发的接口(Hooks),用于第三方来根据自己的业务来对插件的功能进行定制开发,今天就给大家介绍下这些接口:
缩略图接口
如果你使用七牛镜像存储 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;
}
网页 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 ]+\</s'),
array(">\n", "\n<"),
$html
);
return $html;
}
也可以把一些图片 JS 或者 CSS,单独进行替换,具体就看你的业务场景了。