Netzwerkaktivierung; wenn (! current_user_can (‘manage_options’)) mich absperrt …

iHi,

Ich verwende dieses Snippet in einem Plugin;

if ( ! ( current_user_can( 'manage_options' ) ) ) do something } 

Das Problem ist, dass wenn ich das Netzwerk bei einer Installation mit mehreren Standorten aktiviere, ich von den Admin-Seiten ausgeschlossen werde. WP sagt “Sie haben keine Autorität zu dieser Seite” oder etwas (Übersetzung aus dem Schwedischen).

Ich habe durch Versuch und Irrtum das Problem auf die function “current_user_can” beschränkt, aber is_super_admin gibt das gleiche Ergebnis. Ich werde ausgesperrt. Bitte beachten Sie, dass dies nur passiert, wenn das Netzwerk bei einer Multisite-Installation aktiviert wird. Wenn ich das Plugin pro Seite aktiviere funktioniert alles wie erwartet. Ein Beispiel dafür, wie ich es implementieren möchte, sehe ich in GitHub .

Woher? Ich habe es oft ausprobiert und versucht, den Code zu optimieren, aber ich kann es nicht zum Laufen bringen.

Jede bessere Möglichkeit, es zu überprüfen Benutzer hat keine Befugnis, Optionen zu verwalten (hat keine Administratorfunktionen)?

Solutions Collecting From Web of "Netzwerkaktivierung; wenn (! current_user_can (‘manage_options’)) mich absperrt …"

Danke für deinen Rat. Tatsächlich ist es ein Haken, den ich mit diesem Check feuere. Es sieht so aus (ein Beispiel ist die Überprüfung an zwei Stellen für verschiedene Benutzerlevels und in zwei verschiedenen Plugins)

 // Down locks me out of admin area if network activated... 

if (! (current_user_can (‘manage_options’))) {add_action (‘admin_menu’, ‘ngo_remove_eo’); }

und die function ist;

 function ngo_remove_eo() { remove_menu_page( 'edit.php?post_type=event' ); 

}

Ich habe es so geändert;

  add_action( 'wp_loaded', 'eongo_cleanup' ); function eongo_cleanup() { if (!(current_user_can('manage_options'))) { add_action( 'admin_menu', 'ngo_remove_eo' ); } if(!is_super_admin()){ add_action( 'admin_menu', 'ngo_remove_eosubmenu', 99 ); add_action( 'do_meta_boxes', 'remove_eopost_custom_fields' ); } } 

und jetzt funktioniert es 🙂 Vielen Dank Dave.