Cómo listar en una página todos los autores de tu web

Tiempo estimado de lectura: 6 minutos

 

Listar en una página todos los autores de tu web

En esta ocasión vamos a ver cómo podemos listar en una página todos los autores de tu web.

Si tienes un blog y además, tienes varias personas que te ayudan con los contenidos (autores), es posible que te venga bien tener una página donde muestres todos los autores que publican en tu blog.

Tener un blog en el que colaboran varias personas siempre te da un poco más de chaché, pero ese caché aumenta cuando se muestran los nombres de los colaboradores, eso indica que realmente hay personas haciéndose cargo de los contenidos del blog.

En este artículo vamos a ver cómo podemos hacer esto, y para ello, utilizaremos un código un poco complejo, pero que seguro no tendrás problemas para entenderlo.

Código que vamos a utilizar

Como te he dicho, utilizaremos un código que tiene su complejidad, pero intentaremos explicarlo de la forma más sencilla posible.

El código es el siguiente:

function collective_ray_list_authors() {
$authors = get_users(array(
'orderby' => 'post_count',
'order' => 'DESC',
'count_total' => 'false',
'role__in' => ['author']
));
$output = '';
if($authors):
$output .= '<div class="author-list">';
foreach($authors as $author):
$author_id = $author->ID;
$user_archive_url = get_author_posts_url($author_id);
$user_posts_count = count_user_posts($author_id);
$user_avatar = get_avatar(get_the_author_meta('user_email', $author_id));
$user_display_name = get_the_author_meta('display_name', $author_id);
$user_bio = get_the_author_meta('description', $author_id);
$output .= '<div class="author-box">';
$output .= '<div class="author-img">' . $user_avatar . '</div>';
$output .= '<h3 class="author-name">' . $user_display_name . '</h3>';
$output .= '<p class="author-description">' . $user_bio . '</p>';
$output .= '<a href="' . $user_archive_url . '">' . 'View all posts by ' . $user_display_name . ' (' . $user_posts_count . ')</a>';
$output .= '</div>';
endforeach;
$output .= '</div>';
endif;
return $output;
}
add_shortcode('author_list', 'collective_ray_list_authors');

Como puedes ver, es un código un poquito extenso, y vamos a ver qué es lo que hace.

En primer lugar creamos una función llamada collective_ray_list_authors que almacena los usuarios con rol autor, además, contabiliza los artículos y los ordena. A continuación se mira artículo por artículo si el autor del mismo tiene el rol de autor, y almacena el número de artículos por autor, además de su imagen de gravatar, su id, su email, su nombre y su información (información del autor).

Por último, se generará un shortcode ([author_list]) que es el que nos permitirá mostrar el contenido en una página en concreto o donde tú quieras mostrarlo.

Crear la página y hacerlo un poco bonito

A continuación debes crear una página nueva (puedes llamarla Autores), y pegar dentro el shortcode [author_list] y guardarla. Si ves la vista previa de esta página ya podrás ver el resultado.

Ahora vamos a mostrar el resultado un poco más bonito, con un poco de estilos CSS. Puedes utilizar estos que te propongo, o puedes modificar este código para darle un aspecto coherente con el diseño de tu web.

.author-box {
background-color: #fff;
padding: 20px;
margin: 0 0 40px;
width: inherit;
}
.author-box a {
text-decoration: none;
}
.author-box .author-name {
font-weight: bold;
clear: none;
display: inline;
}
.author-box .author-img {
float: left;
margin-right: 20px;
margin-bottom: 20px;
}
.author-box .author-img img {
border-radius: 50%;
}

Este código creará una caja de color de fondo blanco, con el nombre del autor en negrita y en una única línea, además de de mostrar redonda la imagen del autor.

Por último, ¿dónde colocaremos este código?

Como ya deberías saber, puede colocar este código en el archivo functions.php de tu tema activo, pero también deberías saber que cuando actualices tu tema, y creme, tarde o temprano lo vas a hacer, los cambios que hayas hecho en este archivo se perderán, ya que tu archivo functions.php se sobreescribirá por el nuevo que tiene el tema actualizado.

Por todo esto, te recomiendo que pegues el código en tu plugin de snippets. Por otro lado, el código CSS puede pegarlo en el personalizador de tu tema, ya sabes Apariencia, Personalizar, CSS adicional.

 


¿Te ha servido este artículo?, PUES DALE JEROMA, PASTILLAS DE GOMA. 1


¿Qué te ha parecido el artículo?. Házmelo saber en los comentarios que tienes más abajo. Estoy deseando leerte.

Por último, si crees que este artículo puede ser interesante para algún amigo tuyo, te agradecería enormemente que lo compartieras con él y con todo el mundo a través de las Redes Sociales.

Puntúa este artículo:
[Total: 0 - Promedio: 0]

Puede que también te interese...

2 comentarios

  1. Excelente! solo que me han quedado uno abajo del otro los autores y hubiera querido que sean mas por fila. tratare de hacerlo editando el código.

    1. Hola Alan, en primer lugar quiero pedirte disculpas por haber tardado tanto en responderte, creí que ya lo había hecho.
      Te agradezco que visites el blog y que respondas a los artículos. Me alegra que me escribáis y me digáis que los artículos son de utilidad.
      Gracias de nuevo por tu comentario y siéntete libre de leer y comentar más artículos.
      Un saludo.

Deja una respuesta

Información básica sobre protección de datos
Responsable: Jose González Bueno.
Finalidad: Moderación y publicación de comentarios.
Destinatarios: No se comunican datos a terceros, salvo por imperativo legal.
Derechos: Tienes derecho a acceder, rectificar, exportar y suprimir tus datos.

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

He leído y acepto la política de privacidad de este sitio. *