通过主题的函数激活插件。php?

时间:2015-08-09 作者:user3438958

是否可以激活每个主题的插件?

我有一个多站点,我知道每个站点都可以激活插件。但我需要为特定主题启用插件。

有人问了一个类似的问题-如果有可能通过其他插件激活插件:How To Activate Plugins via Code?

这是一个公认的答案:

    //Activate a plugin programmatically - Akismet example

    function run_activate_plugin( $plugin ) {
    $current = get_option( \'active_plugins\' );
    $plugin = plugin_basename( trim( $plugin ) );

    if ( !in_array( $plugin, $current ) ) {
        $current[] = $plugin;
        sort( $current );
        do_action( \'activate_plugin\', trim( $plugin ) );
        update_option( \'active_plugins\', $current );
        do_action( \'activate_\' . trim( $plugin ) );
        do_action( \'activated_plugin\', trim( $plugin) );
    }

    return null;
}
run_activate_plugin( \'akismet/akismet.php\' );
然而,有人评论说这不是很安全,我也不确定这是否是一个好主意,添加到一个主题的功能。php文件。

我将上述代码添加到主题函数中。php来激活一些插件,到目前为止,这是没有任何问题的工作。我会在这方面遇到问题吗,或者有更好的代码可以使用吗?还有这个功能activate_plugin() 不确定该功能是否是激活插件的更好方法。

我对代码不在行,希望您能帮我。

1 个回复
SO网友:Vivek Tamrakar

在主题函数上编写此代码。php

function run_activate_plugin( $plugin ) {
$current = get_option( \'active_plugins\' );
$plugin = plugin_basename( trim( $plugin ) );

     if ( !in_array( $plugin, $current ) ) {
         $current[] = $plugin;
          sort( $current );
          do_action( \'activate_plugin\', trim( $plugin ) );
          update_option( \'active_plugins\', $current );
          do_action( \'activate_\' . trim( $plugin ) );
          do_action( \'activated_plugin\', trim( $plugin) );
       }

    return null;
 }
run_activate_plugin( \'plugin-folder-name/plugin-main-file.php\' );
它起作用了

结束

相关推荐

Plugins_url()错误地返回wp-Include目录

我怀疑它有问题plugins_url() 但我看到的是一些奇怪的行为。我在激活的插件中有以下内容function include_masonry() { wp_enqueue_script( \'masonry\', plugins_url(\'js/masonry.min.js\', __FILE__), array(), \'3.2.1\', true ); wp_enqueue_script( \'my_init_script\', plugins_url(\'js/my_i