提高主题的插件体验
很多主题作者为了提高开发效率,在主题里预留了一些指定插件的接口,当用户使用该主题,并且激活了相应的插件时,主题将自动调用插件,生成最适合该主题的效果。
如何为插件预留接口呢?以普及率很高的WP-Pagenavi插件为例,使用以下代码:
1 2 3 | < ?php if(function_exists('wp_pagenavi')) : ?> < ?php wp_pagenavi() ?> < ?php endif; ?> |
这样当用户激活了WP-Pagenavi插件时,主题将自动调用插件的功能,不需要再修改模板。
但是以上的代码当用户没有使用WP-Pagenavi插件时,主题将失去文章列表分页功能。为了让主题的功能平稳退化,现在所有的主题作者都会使用以下的代码:
1 2 3 4 5 6 | < ?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模板,但却没有激活WP_EasyArchives插件时,我采用以下的效果来提醒用户安装相关的插件:

代码如下:
1 2 3 4 5 6 7 | < ?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; ?> |
同过设置环境条件不能达到模板要求时的应对方案,可以防止用户在没有激活插件时导致页面出错,也可以增强主题对用户的友好性。
但这种强迫用户使用插件的行为同样也不是我所提倡的,只是时间关系,我不能及时地做出一个更好的应对方案。最好的方法,当然是集成插件,或者把一个完整的替代功能做进主题里。




嗯,这样很方便,我折腾的几个主题都加了些。
对于私用主题就不需要加这些判断了,如果是共享的主题确实很有利于用户
这个考虑不错
不错不错,可以试试看。
恩,同意万戈~
这几个插件偶也在用
真是体贴呐
插件是最好用的~ 特别是把主题的东西做成插件!
恩~这个主意很赞!经常要搜索找这个!
主题,现在技术还不行
最近我都没时间折腾了,呵呵。
对wp用户是相当有用的呢
@zwwooooo
哈哈,其实这是主题营销的一个方法,有空我说一下
@万戈
我觉得私用主题也要加,万一WP升级后某个插件不能用了呢?
我不赞同后一个方案, 因为博客是给访客看的, 不是给博主看的. 如果主题没调好, 不如直接转跳 404, 或者 “Archive page is not yet ready, please come back later.”
@mg12
你优先考虑访客,我考虑的是每个页面的第一个读者都是博主自己。
很好的想法,小邪学习一下 ~
访客是第一