如果缺少插件,则显示警告

时间:2012-11-25 作者:Jules

很抱歉,如果这个问题有点琐碎,但我写的主题取决于要安装的插件。这是一个多语言主题,所以我绝对需要用户Polylang 已安装。我曾考虑将插件文件复制到我的主题中,但这意味着我的主题用户将无法获得Polylang更新。

因此,我希望您同意,最好的解决方案是强制用户安装polylang。现在,我想知道让用户知道他需要安装polylang的最佳方法是什么?是否可以自动安装插件?如果用户在战后卸载polylang,只是打破主题,或者退回到twentyeleven主题,会发生什么?

我真的很想听听其他人对此的想法。

2 个回复
SO网友:Oleg Butuzov

可以添加选项和更改的示例代码。。。检查是否安装了插件。//初始挂钩的附加检查。

add_action(\'admin_init\', \'wpse_73859_init\');
function wpse_73859_init(){
    // if - we in wp-admin
    // if - we class of polylang not found
    // and if we can manage_options (there a lot of different 
    //     capabilities you can use install_plugins for example...)

    if (!class_exists(\'Polylang\') && current_user_can(\'manage_options\')){
        // message function created on a fly... 
        $msg = create_function(\'\', \'echo "<div class=\\"updated\\"><p>require polylang plugin</p></div>";\');
        // and finaly notice! 
        add_action(\'admin_notices\', $msg);
    }
}
实际上,你可以安装插件(无声下载/解压/激活),但它是如此未被接受,以至于你无法想象。你基本上破坏了使用你主题的人的隐私。

SO网友:Geert
// The is_plugin_active() function is only included by default in the admin,
// load it on the front-end too if needed.
if ( ! function_exists(\'is_plugin_active\'))
{
    include_once ABSPATH.\'wp-admin/includes/plugin.php\';
}

// Check if a certain plugin is activated
if ( ! is_plugin_active(\'plugin-directory/plugin-file.php\'))
{
    // It\'s probably too drastic to simply exit, but do whatever you want here
    exit(\'Plugin X requires plugin Y. Please, install plugin Y.\');
}

Codex: is_plugin_active()

结束

相关推荐

Updates for a private plugin?

如果我写一个私有插件,有没有办法使用WordPress自动更新机制来更新它 我想封装这个功能,但它是我自己的5个博客特有的,所以它不是公共插件资源的好候选。但我喜欢这种简单的更新机制 有没有办法做到这一点