En este momento puede hacer que su nombre para mostrar sea lo que quiera, incluso puede hacerse pasar por un administrador. ¿Es posible hacer que el Nombre para mostrar sea único?
13
Hasta donde sé, todo lo que puede hacer es filtrar el nombre para mostrar pre_user_display_name
y verificar si ya existe. Lamentablemente WP_User_Query
no admite consultas por display_name
, por lo que también tenemos que agregar a la WHERE
cláusula vía pre_user_query
. Además, no hay una manera elegante en la que pueda pensar para manejar el caso en el que display_name
ya existe más allá de no devolver nada, ya que no sabemos a través del filtro a qué usuario está asociado este potencial nombre para mostrar. ¡o tal vez estoy cansado y me falta algo obvio! De todos modos, aquí hay una prueba rápida que creé:
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();
Está bastante sucio, pero hace el trabajo, solo colóquelo en su tema functions.php en un solo sitio, o en un archivo functions.php dentro de su carpeta mu-plugins en un sitio múltiple.
El script también escaneará a los usuarios existentes (si su sitio ya tiene muchos) y los nombres para mostrar no únicos se actualizarán y reemplazarán con nombre de usuario.
Sé que esto no es totalmente ideal, pero cualquier sugerencia para tratar con usuarios existentes o mejoras siempre es bienvenida.
fuente
Prueba esto:
Enlace: http://bappi-d-great.com/unique-display-name-and-nickname-in-wordpress/
fuente