【问题标题】:Wordpress's is_plugin_active_for_network function not working for multisitesWordpress 的 is_plugin_active_for_network 功能不适用于多站点
【发布时间】:2014-08-15 18:52:29
【问题描述】:

如果用户点击我的 WP 插件(在 WP Multisite 中)上的 Network Activate 按钮,我需要进行一些操作。

但是当我从主管理员面板按下网络激活按钮时,我注意到 Wordpress 的 is_plugin_active_for_network 功能不适用于多站点。

它什么也不返回,因此

if(is_plugin_active_for_network('abc/abc.php'))

未完成。

但是,当网络已经激活网络时,函数 - is_plugin_active_for_network 工作正常(它返回 1 - 即 true)。

谁能告诉我如何检查网络激活按钮是否被主管理员点击?

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    如果您尝试在插件上检查网络范围内的激活(而不是在单个站点上的激活),那么您需要检查传递给您的激活函数的布尔变量。

    register_activation_hook( __FILE__, 'activate' );
    
    function activate( $network_wide ) {
    
        // $network_wide will be TRUE if activation is network wide
        if ( $network_wide  ) {
    
            ... Do Stuff ...
    
        }
    
        ...
    
    }
    

    【讨论】:

    • 它不起作用。我正在使用 OOP 方法来激活插件。 $network_wide 始终没有任何价值。
    • OOP 唯一应该改变的是回调代码。那么它应该看起来像这样......array( 'MyPluginClass', 'activate' )。何时/如何不工作?
    • 我认为这个 $network_wide 变量不再适用于 Wordpress 新版本。我正在使用 OOP 方法和 register_activation_hook( _FILE_, array($my_plugin_class_object, 'activate') ); 并在函数 activate 中在我写的类里面 function activate($network_wide) { print_r($network_wide);die(); } 但没有打印任何内容,表示未找到 $network_wide。 :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 2019-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多