Teraz możesz zmienić swoją Nazwę wyświetlaną na dowolną, a nawet podszyć się pod administratora. Czy jest możliwe, aby nazwa wyświetlana była unikalna?
13
O ile mi wiadomo, wszystko, co możesz zrobić, to przefiltrować wyświetlaną nazwę pre_user_display_name
i sprawdzić, czy już istnieje. Niestety WP_User_Query
nie obsługuje wysyłania zapytań przez display_name
, dlatego też musimy dodać do WHERE
klauzuli za pośrednictwem pre_user_query
. Ponadto nie ma eleganckiego sposobu, w jaki mógłbym myśleć o przypadku, w którym display_name
już istnieje, nie zwracając niczego, ponieważ nie wiemy przez filtr, do którego użytkownika dołączona jest ta potencjalna nazwa wyświetlana. a może po prostu jestem zmęczony i brakuje mi czegoś oczywistego! Tak czy inaczej, oto szybki test, który stworzyłem:
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();
Jest dość brudny, ale spełnia swoje zadanie, po prostu umieść go w funkcjach theme.php na jednej stronie lub w pliku functions.php w folderze mu-plugins na wielu stronach.
Skrypt przeskanuje również istniejących użytkowników (jeśli witryna ma już wielu), a wszelkie nietypowe wyświetlane nazwy zostaną zaktualizowane i zastąpione nazwą użytkownika.
Wiem, że nie jest to całkowicie idealne, ale wszelkie sugestie dotyczące postępowania z istniejącymi użytkownikami lub ulepszeń są zawsze mile widziane.
źródło
Spróbuj tego:
Link: http://bappi-d-great.com/unique-display-name-and-nickname-in-wordpress/
źródło