Cómo obtener el ID de usuario mediante su display_name
Tengo el display_name
de un usuario y con esto quiero obtener el id
de ese usuario.
Entonces, ¿cómo puedo obtener el ID del usuario?

Puedes utilizar la siguiente función:
function get_user_id_by_display_name( $display_name ) {
global $wpdb;
if ( ! $user = $wpdb->get_row( $wpdb->prepare(
"SELECT `ID` FROM $wpdb->users WHERE `display_name` = %s", $display_name
) ) )
return false;
return $user->ID;
}
Este es el mismo código que utiliza get_user_by()
, pero como esa función solo permite ID
, slug
, email
o login
, tenemos que crear una nueva función.

Utiliza WP_User_Query
.
$args= array(
'search' => 'Nombre para mostrar', // o login o nicename en este ejemplo
'search_fields' => array('user_login','user_nicename','display_name')
);
$user = new WP_User_Query($args);
Acabo de responder una pregunta muy similar a esta: Cómo podemos obtener el ID del autor por su Nombre

el dump de $user
muestra que display_name
no está en la consulta SQL. Usa otra respuesta para habilitarlo http://wordpress.stackexchange.com/questions/201779/how-to-get-user-by-display-name-with-wp-user-query

No creo que esto se haya mencionado, probablemente porque busca tanto display_name como dirección de correo electrónico, URL, ID y nombre de usuario, esto es más de lo requerido pero funcionó bien para mi caso de uso particular.
function get_user_id_by_search( $search_term ) {
$user = get_users(array('search' => $search_term));
if (!empty($user))
return $user[0]->ID;
}

Completamente no probado, pero no veo nada en el código por lo que no funcionaría usar get_users()
con una consulta de metadatos:
$users = get_users( array(
'meta_key' => 'display_name',
'meta_value' => 'John Doe'
) );
$user = ( ( isset( $users[0] ) ? $users[0] : false );
$user_id = ( $user ? $user->ID : false );

La consulta de usuarios de WordPress por defecto no permite usar display_name en la columna de búsqueda aunque se agregue, aquí hay una solución http://manchumahara.com/2014/04/03/search-user-by-display-name-in-wordpress-sitewide/
Ejemplo:
$args= array(
'search' => 'Nombre para mostrar', // o login o nicename en este ejemplo
'search_fields' => array('user_login','user_nicename','display_name')
);
$user = new WP_User_Query($args);
La consulta anterior no buscará por display_name
Necesitas usar este filtro
add_filter('user_search_columns', 'user_search_columns_bd' , 10, 3);
function user_search_columns_bd($search_columns, $search, $this){
if(!in_array('display_name', $search_columns)){
$search_columns[] = 'display_name';
}
return $search_columns;
}
