Im Moment können Sie Ihren Anzeigenamen nach Belieben ändern und sich sogar als Administrator ausgeben. Ist es möglich, den Anzeigenamen eindeutig zu machen?
13
Soweit mir bekannt ist, können Sie den Anzeigenamen nur über filtern pre_user_display_name
und prüfen, ob er bereits vorhanden ist. Leider wird WP_User_Query
das Abfragen von nicht unterstützt display_name
, daher müssen wir die WHERE
Klausel auch über ergänzen pre_user_query
. Außerdem gibt es keine elegante Möglichkeit, mit dem Fall umzugehen, dass das display_name
bereits existiert, ohne nichts zurückzugeben, da wir über den Filter nicht wissen, welchem Benutzer dieser potenzielle Anzeigename zugeordnet ist. oder vielleicht bin ich nur müde und vermisse etwas offensichtliches! Wie auch immer, hier ist ein kurzer Test, den ich erstellt habe:
class wpa82239_display_name {
private $display_name;
public function __construct(){
add_filter( 'pre_user_display_name', array( $this, 'display_name_filter' ) );
}
public function display_name_filter( $display_name ){
$this->display_name = $display_name;
add_action( 'pre_user_query', array( $this, 'user_query_filter' ) );
$args = array(
'number' => 1,
'fields' => 'ID'
);
$user_search = new WP_User_Query( $args );
remove_action( 'pre_user_query', array( $this, 'user_query_filter' ) );
if( 0 == $user_search->total_users )
return $display_name;
return null;
}
public function user_query_filter( $query ){
global $wpdb;
$query->query_where .= $wpdb->prepare(
" AND $wpdb->users.display_name = %s",
$this->display_name
);
}
}
$wpa82239_display_name = new wpa82239_display_name();
Es ist ziemlich dreckig, aber erledigt den Job, platziere es einfach in deiner theme functions.php auf einer einzelnen Site oder in einer functions.php-Datei in deinem mu-plugins-Ordner auf einer Multisite.
Das Skript durchsucht auch vorhandene Benutzer (wenn Ihre Site bereits viele hat) und alle nicht eindeutigen Anzeigenamen werden aktualisiert und durch den Benutzernamen ersetzt.
Ich weiß, dass dies nicht ganz ideal ist, aber Vorschläge für den Umgang mit vorhandenen Benutzern oder Verbesserungen sind immer willkommen.
quelle
Versuche dies:
Link: http://bappi-d-great.com/unique-display-name-and-nickname-in-wordpress/
quelle