Cómo crear listas de autores y colaboradores por separado en WordPress

La función que genera una lista de autores en WordPress, wp_list_authors(), no permite discriminar entre distintos tipos de usuario, por ejemplo entre autores y colaboradores. Si queremos hacer algo así debemos consultar directamente a la base de datos y extraer la información.

Matt Varone publicó hace tiempo en su blog un tutorial completo para generar listas de usuarios discriminadas, y cómo ordenarlas según los diferentes registros que almacena la tabla de usuarios de la base de datos de WordPress. El código publicado está muy bien comentado y es fácilmente adaptable a cada caso que se necesite.

<?php
/*
	First we set how we'll want to sort the user list.

	You could sort them by:
	------------------------

	* ID - User ID number.
	* user_login - User Login name.
	* user_nicename - User Nice name ( nice version of login name ).
	* user_email - User Email Address.
	* user_url - User Website URL.
	* user_registered - User Registration date.
*/

$szSort = "user_nicename";

/*
	Now we build the custom query to get the ID of the users.
*/

$aUsersID = $wpdb->get_col( $wpdb->prepare(
	"SELECT $wpdb->users.ID FROM $wpdb->users ORDER BY %s ASC"
	, $szSort ));

/*
	Once we have the IDs we loop through them with a Foreach statement.
*/

foreach ( $aUsersID as $iUserID ) :

/*
	We use get_userdata() function with each ID.
*/

$user = get_userdata( $iUserID );

/*
	Here we finally print the details wanted.
	Check the description of the database tables linked above to see
	all the fields you can retrieve.

	To echo a property simply call it with $user->name_of_the_column.

	In this example I print the first and last name.
*/

	echo '<li>' . ucwords( strtolower( $user->first_name . ' ' . $user->last_name ) ) . '</li>';

/*
     The strtolower and ucwords part is to be sure
     the full names will all be capitalized.
*/

endforeach; // end the users loop.
?>

Por otro lado, wp_list_authors() tampoco permite mostrar avatars de autores. Con el mismo procedimiento, en bavotasan.com explican cómo añadir esta imagen asociada a cada autor.

function contributors() {
global $wpdb;

$authors = $wpdb->get_results("SELECT ID, user_nicename from $wpdb->users ORDER BY display_name");

foreach($authors as $author) {
echo "<li>";
echo "<a href=\"".get_bloginfo('url')."/?author=";
echo $author->ID;
echo "\">";
echo get_avatar($author->ID);
echo "</a>";
echo '<div>';
echo "<a href=\"".get_bloginfo('url')."/?author=";
echo $author->ID;
echo "\">";
the_author_meta('display_name', $author->ID);
echo "</a>";
echo "</div>";
echo "</li>";
}
}

COMENTARIOS / UN COMENTARIO

Solo una observación en la linea
$user = get_userdata( $iUserID );
debe especificarse un id mas no el objeto. dado que get_userdata trae los datos de un ID específico. En mi caso quedó asi:

function cumplemes() {
global $wpdb;
$authors = $wpdb->get_results(“SELECT $wpdb->users.ID from $wpdb->users”);
foreach($authors as $author) :
$user = get_userdata($author->ID);
echo ‘‘ . ucwords( strtolower( $user->first_name . ‘ ‘ . $user->last_name ) ) . ‘‘;
endforeach;
}

Por eBuho el 15 de Abr de 2010 a las 18:46

COMENTA / EXPRESA TU OPINIÓN
Los comentarios tienen que ser aprobados por un editor antes de ser publicados.

XHTML: Puedes usar las siguientes etiquetas para dar formato: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

ARTÍCULOS RELACIONADOS / Lista generada automáticamente

MÁS / Artículos de Febrero de 2010

MÁS / Otros artículos sobre WordPress

CALENTITO / Últimos artículos

Otros blogs en los que colaboro

RSS Obsoletos

  • Carrera de discos duros 9 de Agosto de 2010
    Un vídeo un poco tontorrón para entretener esta plomiza tarde de agosto, ¿qué pasa si sueltas los platos de un disco duro en plena faena? Un disco duro normal gira a 7200 revoluciones por minuto, por lo que el borde se mueve a 130 Km/h. Debido al deslizamiento sobre el suelo liso tardan en coger […]
    paaq
  • La evolución cíclica del tamaño de los teléfonos móviles 3 de Agosto de 2010
    Apuntan en Generaccion.com que los recientes experimentos con móviles de pantalla grande podrían ser el inicio de una reacción contra la constante miniaturización de estos aparatos desde que aparecieron en el mercado hace lustros. Ciertamente, un teléfono grande permite una pantalla más legible, unas teclas más accesibles, una carcasa más robusta y una mayor […]
    paaq
  • Se acabó el Kodachrome, se acabó MangoFalls 20 de Julio de 2010
    Hace poco más de un año, la Eastman Kodak Corporation anunció que dejaba de fabricar su carrete de fotos de más edad, el Kodachrome, de 74 años. La estrella de Kodak es uno de los carretes más míticos de la historia de la fotografía y ha permitido instantáneas como la de la famosa chica de […]
    skotperez

RSS meipi

  • Mediterranean. Proyectos urbanos del Mar Mediterráneo 14 de Junio de 2010
    El meipi /mediterranean es ya de largo el que tiene más entradas de la red de mapas de meipi.org, ya van más de 900. Desde una asignatura de la Universidad de Arquitectura de Granada han realizado una extensa cartografía de proyectos urbanísticos (construidos o realizados) de las dos orillas del Mediterráneo. Han hecho un uso […]
    pablo
  • Embeber un mapa de meipi en Wordpress 20 de Mayo de 2010
    Si necesitas embeber un mapa en un post  o en una página de tu Wordpress usarás un iframe. Para que el Wordpress te deje meterlo debes instalar antes un plug-in como Embed iframe. Así de fácil. […]
    pablo
  • Como embeber un mapa sin que salga la leyenda 7 de Mayo de 2010
    Hace tiempo os contábamos cómo insertar un meipi en otra web. En el proyecto de 6.000km en el que estoy metido necesitábamos meter el mapa en el blog, como teníamos un espacio reducido la leyenda nos molestaba. Así que ahora puedes añadir el mapa sin la leyenda añadiendo “&legend=false” al final de la URL: Con leyenda http://meipi.org/6000km.map.php?embe […]
    pablo