国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > WordPress > 提高 WordPress 主题的插件体验

提高 WordPress 主题的插件体验

来源:程序员人生   发布时间:2013-12-02 11:39:07 阅读次数:3031次

很多主题作者为了提高开发效率,在主题里预留了一些指定插件的接口,当用户使用该主题,并且激活了相应的插件时,主题将自动调用插件,生成最适合该主题的效果。

如何为插件预留接口呢?以普及率很高的WP-Pagenavi插件为例,使用以下代码:

< ?php if(function_exists('wp_pagenavi')) : ?>
< ?php wp_pagenavi() ?>
< ?php endif; ?>

这样当用户激活了WP-Pagenavi插件时,主题将自动调用插件的功能,不需要再修改模板。

但是以上的代码当用户没有使用WP-Pagenavi插件时,主题将失去文章列表分页功能。为了让主题的功能平稳退化,现在所有的主题作者都会使用以下的代码:

< ?php if(function_exists('wp_pagenavi')) : ?>
< ?php wp_pagenavi() ?>
< ?php else : ?>
<span class="newer">< ?php previous_posts_link(__('Newer Entries»')); ?></span>
<span class="older">< ?php next_posts_link(__('«Older Entries')); ?></span>
< ?php endif; ?>

这样在用户没有激活WP-Pagenavi插件时,主题将使用WordPress提供的分页功能对文章列表进行分页。主题也不会绝对的依赖插件。
还有一种情况是在主题的某些模板中需要插件支持的,以我制作的Inpad主题为例,在Archives模板里需要调用WP_EasyArchives插件来生成安时间线存档的文章列表。在激活WP_EasyArchives插件时,该模板的效果如下:

Archives模板正常效果 引用的内容:[www.veryhuo.com]

< ?php if (function_exists('wp_easyarchives')) : ?>
< ?php wp_easyarchives(); ?>
< ?php else : ?>
<div class="messagebox">
< ?php _e('Sorry, please activate WP-EasyArchives plugin.'); ?>
</div>
< ?php endif; ?>

同过设置环境条件不能达到模板要求时的应对方案,可以防止用户在没有激活插件时导致页面出错,也可以增强主题对用户的友好性。
但这种强迫用户使用插件的行为同样也不是我所提倡的,只是时间关系,我不能及时地做出一个更好的应对方案。最好的方法,当然是集成插件,或者把一个完整的替代功能做进主题里。
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------

上一篇 DedeCms独立模型调用图片列表图片大小无法控制的解决方法

下一篇 如何给discuz个人资料增加选项?

分享到:
------分隔线----------------------------
为码而活
积分:4237
15粉丝
7关注
栏目热点
关闭
程序员人生