Speichern Sie benutzerspezifische Optionen in WordPress admin

Ich schreibe ein Plugin, das benutzerspezifische Optionen in einer Admin-Seite speichern muss. Ich denke nur daran, der Option ein Username-Präfix hinzuzufügen, zum Beispiel:

$options = get_option('username-plugin_options'); 

Gibt es einen besseren Weg?

Solutions Collecting From Web of "Speichern Sie benutzerspezifische Optionen in WordPress admin"

Wenn Sie Ihre Einstellung registrieren (vorausgesetzt, Sie verwenden die Einstellungs-API), können Sie das aktuelle Benutzerobjekt mit wp_get_current_user . Es gibt ein Benutzerobjekt zurück, und die Eigenschaft, die Sie in Ihrer Einstellung verwenden möchten, ist user_nicename – denken Sie daran wie der Benutzer slug.

 < ?php add_action( 'admin_init', 'wpse27690_register_setting' ); function wpse27690_register_setting() { $user = wp_get_current_user(); register_setting( $user->user_nicename . '_plugin_options', $user->user_nicename . '_plugin_options', 'wpse27690_sanitize' ); } function wpse27690_sanitize( $in ) { // clean stuff here. return $in; } 

Sie können dasselbe tun, wenn Sie die Option abrufen. Dies ist wahrscheinlich keine gute Idee, wie Rarst in den Kommentaren betont. Und es wird wahrscheinlich nicht mit Benutzern auf “Abonnentenebene” oder denen funktionieren, die keine Optionen verwalten können.

Wenn es jedoch eine oder zwei Optionen gibt, ist es am einfachsten, der Benutzerprofilseite Felder hinzuzufügen. Nicht sicher, ob es das ist, was du willst, aber du kannst es so machen:

 < ?php add_action( 'show_user_profile', 'wpse27690_user_form' ); // for you profile add_action( 'edit_user_profile', 'wpse27690_user_form' ); // for other's profiles function wpse27690_user_form( $user ) { // put your form fields here, probably a nonce or something } add_action( 'personal_options_update', 'wpse27690_user_save' ); // you profile add_action( 'edit_user_profile_update', 'wpse27690_user_save' ); // other's profiles function wpse27690_user_save( $user_id ) { // check nonces, permssions first // then save if( isset( $_POST['_your_fields_name'] ) ) update_user_meta( $user_id, 'wpse27690_user_key', esc_attr( $_POST['_your_fields_name'] ) ); } 

Wenn Sie einzelne Benutzeroptionen speichern, wird dies mit update_user_meta