Saat ini Anda dapat membuat Nama Tampilan Anda apa pun yang Anda inginkan, Anda bahkan dapat menyamar sebagai admin. Apakah mungkin membuat Nama Tampilan unik?
13
Sejauh yang saya ketahui, yang dapat Anda lakukan adalah memfilter nama tampilan melalui pre_user_display_name
dan memeriksa apakah sudah ada. Sayangnya WP_User_Query
tidak mendukung permintaan dengan display_name
, jadi kami juga harus menambahkan ke WHERE
klausa melalui pre_user_query
. Selain itu, tidak ada cara elegan yang dapat saya pikirkan untuk menangani case di mana display_name
sudah ada di luar mengembalikan apa-apa, karena kita tidak tahu melalui filter apa pengguna nama tampilan potensial ini dilampirkan. atau mungkin aku hanya lelah dan kehilangan sesuatu yang jelas! Bagaimanapun, inilah tes cepat yang saya buat:
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();
Ini cukup kotor, tetapi berhasil, cukup tempatkan di theme.fp tema Anda di satu situs, atau di file functions.php di dalam folder mu-plugins Anda di multisite.
Skrip juga akan memindai pengguna yang ada (jika situs Anda sudah memiliki banyak) dan nama tampilan yang tidak unik akan diperbarui dan diganti dengan nama pengguna.
Saya tahu ini tidak sepenuhnya ideal, tetapi saran untuk berurusan dengan pengguna yang ada atau perbaikan selalu diterima.
sumber
Coba ini:
Tautan: http://bappi-d-great.com/unique-display-name-and-nickname-in-wordpress/
sumber