在编写一个主题的时候,可能有些功能并不一定要在主题中实现,而是要借助一些插件来实现。那么我们如何做到在启用主题的时候,同时启用某个插件呢?
我们可以在主题的functions.php中添加以下代码(这里以akismet为例):
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
// 判断插件是否已经启用
if (is_admin() && current_user_can('activate_plugins')
&& !is_plugin_active(ABSPATH . 'wp-content/plugins/akismet/akismet.php')) {
// 启用插件
activate_plugin(ABSPATH . 'wp-content/plugins/akismet/akismet.php');
}
首先我们需要include一下plugin.php,因为我们用到的两个函数is_plugin_active()和activate_plugin()都是在plugin.php中定义的,而主题文件不会自动引用这个文件。
接着我们需要判断当前页面是否是后台,同时为了安全考虑,我们需要用current_user_can()判断当前用户是否有启用主题的权限。最后,判断插件是否已启用,这里使用插件主文件的路径,何为插件主文件呢?这个文件在插件目录下,一般与插件同名,用文本编辑器打开,一般会看到类似注释:
/*
Plugin Name: **
Plugin URI: **
Description: **
Version: **
Author: **
*/
需要提醒的是,主题发布记得附带插件或叮嘱用户下载好插件。
参考文章:
Function Reference/is plugin active