Cómo crear una página de autores en un multisite de WordPress

Cómo crear una página de autores en un multisite de WordPress

Crear una página de autores en tu multisite o red de WordPress es una buena manera de dar crédito a todos aquellos que participan en el mantenimiento del blog. Una vez creada la página puede añadirse al menú de portada, o ser enlazada desde cualquier otra parte de cada blog que compone el multisite o red. Para ello debemos seguir varios pasos.

Crear la función

Lo primero que tenemos que hacer es crear una función que nos devuelva el listado de los autores del blog, y que de formato a lo que se va a mostrar en la página, esto es, el nombre, avatar, biografía y enlace al perfil individual. Para ello debemos editar el archivo functions.php del theme que estemos usando y añadir el siguiente código.


if ( ! function_exists( 'my_authors_list' ) ) :
function my_authors_list() {
global $wpdb, $blog_id;
if ( empty($id))
$id = (int) $blog_id;
$blog_prefix = $wpdb->get_blog_prefix($id);
$authors = $wpdb->get_results( "SELECT user_id, user_id AS ID, user_login, display_name, user_email, meta_value FROM $wpdb->users, $wpdb->usermeta WHERE {$wpdb->users}.ID = {$wpdb->usermeta}.user_id AND meta_key = '{$blog_prefix}capabilities' ORDER BY {$wpdb->usermeta}.user_id" );
foreach($authors as $author) {
echo "<div class="author">";
echo "<div class="author-avatar"><a href=".get_bloginfo('url')."/?author=".$author->ID.">". get_avatar($author->ID, 68)."</a></div>";
echo "<div class="author-description"><h4>". get_the_author_meta('display_name', $author->ID)."</h4>";
echo "<p>".get_the_author_meta('user_description', $author->ID)."<p>";
echo "<div class="author-link"><a href=".get_bloginfo('url')."/?author=".$author->ID.">Ver el perfil de ". get_the_author_meta('display_name', $author->ID). "</div></div>";
echo "</div>";
}
} endif;

Crear un nuevo template de página

A continuación crearemos el template de la página de autores. Para ello duplicaremos el archivo page.php del theme que estemos usando y lo renombraremos como page-authors.php.

Luego debemos editar ese archivo e insertar encima del código que ya existe, el siguiente:

<?php
/**
* Template Name: Pagina de Autores
* Description: Template que lista los autores del blog.
*/
?>

Con ello conseguimos que WordPress reconozca el archivo como un template de página.

Luego debemos buscar el código <?php the_content(); ?> que es el que muestra el contenido de la página, y sustituirlo por nuestra función:

<?php my_authors_list(); ?>

De ese modo conseguimos que el listado de autores se muestre al cargar el template de página.

Crear la página de autores y asignarle el template

Y por último crearemos una nueva página en nuestro blog, seleccionando como plantilla el template que hemos creado. Ahora ya podemos añadirla a un menú o enlazar nuestra lista de autores desde cualquier otra página o post de nuestro blog.

Photo Credit: Javier Kohen