私はいくつかの奇妙なエラーがあるか、私はこの問題に取り組むためのスキルを持っていないかもしれません。私はMultisite用のプラグインを作成しています。がis_admin()
を使用している場合、私のプラグインは問題なく動作しますが、is_super_admin
を使用している場合は、このエラーFatal error: Call to undefined function wp_get_current_user()
が表示されます。私は検索しましたが、解決策を見つけることができませんでした。
私のコードはこれです
if(!is_super_admin()){
add_action('widgets_init','my_unregister_widdget');
function my_unregister_widgets() {
unregister_widget( 'WP_Widget_Pages' );
unregister_widget( 'WP_Widget_Calendar' );
}
}
私はこれを見ました question しかしそれは私を助けていません。
wp_get_current_user()
はプラグイン可能な関数で、プラグインが included の場合はまだ利用できません。あなたはアクションplugins_loaded
を待つ必要があります。
例:
add_action( 'plugins_loaded', 'wpse_92517_init' );
function wpse_92517_init()
{
if(!is_super_admin())
add_action('widgets_init','my_unregister_widget');
}
function my_unregister_widgets() {
unregister_widget( 'WP_Widget_Pages' );
unregister_widget( 'WP_Widget_Calendar' );
}
あるいはチェックをウィジェット関数に移動します。
add_action( 'widgets_init', 'my_unregister_widget' );
function my_unregister_widgets()
{
if ( is_super_admin() )
return;
// not super admin
unregister_widget( 'WP_Widget_Pages' );
unregister_widget( 'WP_Widget_Calendar' );
}