如何在必用插件中使用is_MultiSite()?

时间:2013-08-30 作者:John

我希望此代码在mu plugins文件夹中的插件中执行。在函数中执行时。php一切正常,但当我在mu插件中尝试它时,会创建一个空白页面。

if (( is_multisite() && !current_user_can(\'manage_network\') ) || ( !is_multisite() && !current_user_can(\'create_users\')))  {
  add_action( \'init\', create_function( \'$a\', "remove_action( \'init\', \'wp_version_check\' );" ), 2 );
  add_filter( \'pre_option_update_core\', create_function( \'$a\', "return null;" ) );
  add_filter( \'pre_site_transient_update_core\', create_function( \'$a\', "return null;" ) );
}

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

MU插件加载得很早——比主题或普通插件加载得更早。因此,有时需要钩住原本不需要钩住的函数。

add_action(
  \'plugins_loaded\',
  function () {
    if (( is_multisite() && !current_user_can(\'manage_network\') ) || ( !is_multisite() && !current_user_can(\'create_users\')))  {
      add_action( \'init\', create_function( \'$a\', "remove_action( \'init\', \'wp_version_check\' );" ), 2 );
      add_filter( \'pre_option_update_core\', create_function( \'$a\', "return null;" ) );
      add_filter( \'pre_site_transient_update_core\', create_function( \'$a\', "return null;" ) );
    }
  }
);
Theplugins_loaded 钩子基本上意味着函数将在正常插件加载之后执行,这似乎已经足够晚了,可以合理地启动了。

结束

相关推荐