Obtener solo la URL de la imagen de perfil del autor dentro de un bucle

5 sept 2015, 23:54:54
Vistas: 36.1K
Votos: 2

Necesito obtener el enlace de la imagen de perfil del autor de la publicación.

Sé que puedo usar get_avatar(); pero muestra todo el marcado HTML de la imagen

<img src="http://.../img.png" class="avatar img-responsive" alt="imagen">

Pero solo necesito el valor del atributo src de la imagen de perfil del autor.

¿Cómo puedo obtenerlo? Tal vez podamos usar algo de php o js para extraer solo el valor del src de toda la salida.

Mi segunda pregunta es, ¿cómo puedo añadir esa imagen como post_thumbnail si no existe una miniatura para esa publicación?

4
Comentarios

La respuesta está aquí: http://wordpress.stackexchange.com/a/188288/24875 Simplemente usa la función get_avatar_url().

Christine Cooper Christine Cooper
6 sept 2015 00:24:28

Ah, veo que es una característica nueva, por eso no la encontré en el codex. ¿Algún comentario sobre la segunda parte de mi pregunta?

hkchakladar hkchakladar
6 sept 2015 00:47:29

En el loop puedes verificar si existe una miniatura con la función has_post_thumbnail(). En caso de que sea falso, muestra tu imagen.

Alexey Alexey
6 sept 2015 01:35:36

Posible duplicado de ¿Cómo obtengo la URL del avatar en lugar de una etiqueta HTML IMG al usar get_avatar?

Andy Macaulay-Brook Andy Macaulay-Brook
8 oct 2016 13:52:26
Todas las respuestas a la pregunta 5
0

Colocar lo siguiente dentro del bucle debería satisfacer tus necesidades:

<?php
$get_author_id = get_the_author_meta('ID');
$get_author_gravatar = get_avatar_url($get_author_id, array('size' => 450));

if(has_post_thumbnail()){
    the_post_thumbnail();
} else {
    echo '<img src="'.$get_author_gravatar.'" alt="'.get_the_title().'" />';
}
?>
30 mar 2017 00:59:05
2

simplemente usa la función get_avatart_uri() y pasa el correo electrónico del usuario como parámetro, te devolverá la URL de la imagen del avatar

17 nov 2016 05:06:01
Comentarios

No creo que get_avatart_uri() sea un nombre de función existente disponible en WordPress...

Sven Sven
17 nov 2016 05:37:14

https://developer.wordpress.org/reference/functions/get_avatar_url/, parece un error tipográfico.

prosti prosti
17 nov 2016 08:28:23
2

Además de usar get_avatar_url, todavía puedes usar get_avatar. Si no me equivoco, esto es lo que estás buscando.

Pregunta 1

Obtener el enlace de la foto de perfil del autor del post


<?php 
    // solo mostrar si la función de gravatar existe
    if (function_exists('get_avatar')) { ?>

    <?php
    // Convertir el email en un hash md5 y establecer el tamaño de imagen a 32px
    $gravatar = 'http://www.gravatar.com/avatar/' . md5(strtolower($user_email)) . '&s=32';

    // Convertir el email en un hash md5 y eliminar el tamaño para usar como imagen de post
    $gravatar_bg = 'http://www.gravatar.com/avatar/' . md5(strtolower($user_email)) . '';
    ?>
    <!-- Mostrar el gravatar como img src -->
    <img src="<?php echo "$gravatar";?>" alt="Avatar del autor" title="Foto de perfil del autor">

    <!-- Mostrar el gravatar como fondo de url -->
    <div class="avatar" style="background: url(<?php echo $gravatar_bg ?>);" ></div>

<?php } ?>

Pregunta 2

Agregar esa imagen como post_thumbnail si no existe una miniatura para ese post


<?php
    // Verificar si el post tiene miniatura 
    // if ( has_post_thumbnail() ) {            // opción 1
    if ( '' != get_the_post_thumbnail() ) {     // opción 2

    // si tiene, mostrar la miniatura
      the_post_thumbnail();

    } else {
     // si no, mostrar la imagen de gravatar
     echo '<img src="<?php echo "$gravatar";?>" alt="Imagen de Gravatar como miniatura" title="Miniatura alternativa de Gravatar">';
    }
?>

Espero que esto ayude, ¡buena suerte!


Recursos: Usando Gravatars | hast_post_thumbnail

6 sept 2015 02:22:29
Comentarios

Hola, sé que puedo verificar if(get_the_post_thumbnail()) y mostrar esa imagen en la plantilla. Pero eso no establece el post_thumbnail, solo lo muestra en esa plantilla en particular. Quiero hacer set_post_thumbnail. ¿Cómo hacer esto?

hkchakladar hkchakladar
6 sept 2015 12:36:48

Según tu comentario, no entiendo bien lo que intentas lograr aquí. ¿Puedes ser más específico? Preguntaste cómo agregar esa imagen como post_thumbnail si no existe una miniatura para esa publicación, el código que publiqué hace exactamente eso.

Jentan Bernardus Jentan Bernardus
6 sept 2015 20:47:09
2

ACTUALIZACIÓN (22 de mayo de 2021) - Estoy usando un plugin Simple Local Avatars para permitir a los usuarios actualizar imágenes localmente. La siguiente solución solo funcionará si usas este plugin.


Por si alguien está buscando la imagen completa del autor y no la encuentra. Aquí hay un pequeño truco.

Método Simple

$avatar_url = get_avatar_url( $author_id ); // Esto devolverá una imagen de 96x96.
$final_url = str_replace('-96x96.', '.', $author_avatar_url);

Reemplazando -96x96. con solo un .. Solo hay que asegurarse de que el nombre de la imagen no incluya esta cadena. Alternativamente, puedes buscar la misma cadena desde el final y hacer el reemplazo usando substr_replace() así:

Método Más Preciso

$avatar_url = get_avatar_url( $author_id ); // Esto devolverá una imagen de 96x96.
$replace = '-96x96.';
$pos = strpos($avatar_url, $replace, -(strlen($replace)+5)); // +5 para la longitud de la extensión
$final_url = substr_replace($avatar_url, '.', $pos, strlen($replace));

Este es el primer resultado en Google al buscar la imagen completa del autor, así que podría ayudar a alguien.

13 may 2021 12:58:13
Comentarios

No creo que eso funcione para los Gravatars por defecto: el tamaño no está en la URL de esa manera, es un parámetro ?s=. ¿Cómo tienes configurados tus avatares? Además, get_avatar_url tiene un parámetro 'size' documentado para el array de argumentos.

Rup Rup
13 may 2021 13:48:24

@Rup ¡¡¡Lo siento!!! Tienes razón, estoy usando "Simple Local Avatars"(https://wordpress.org/plugins/simple-local-avatars/) para permitir que los usuarios configuren sus imágenes de perfil localmente y creo que el plugin me permite obtener una URL en el formato que estoy recibiendo. Completamente olvidé este plugin. Añadiré esta información del plugin en la respuesta anterior.

Abhishek Sachan Abhishek Sachan
22 may 2021 21:01:18
0

Esto es todo lo que hago para agregar el avatar del usuario registrado.

<img src="<?php echo get_avatar_url(get_the_author_meta('ID')); ?>" class="TU CLASE CSS">
6 oct 2021 06:54:07