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>";
}
}

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

  • RetroMadrid 2010 13 de Marzo de 2010
    Mañana se celebra, de diez de la mañana a ocho y media de la tarde en la Facultad de Informática de la Complutense, RetroMadrid 2010. Hay tantas conferencias, concursos, exposiciones y acontecimientos que será imposible estar a todo, pero nos pasaremos por allí. A ver si encontramos algo interesante en el rastrillo. […]
    paaq
  • El primer servidor de Google (40GB) 13 de Marzo de 2010
    Los inicios de Google fueron en la Universidad de Stanford, como parte del doctorado de unos estudiantes. Por aquellos tiempos, en 1996, los datos indexados les cabían en diez discos duros de 4 GB… La historia del buscador está llena de frikadas curiosidades, os dejo unas pocas: + fotos del servidor en el museo en el que [...] […]
    Edu
  • Detector de movimiento sobre un ATMega88 9 de Marzo de 2010
    Como mi último post se alargó más de la cuenta, dejé pendiente la implementación del sensor de presencia mediante nuestra nueva plataforma de desarrollo. Bueno, pues ya va tocando. Por si ya lo has olvidado, vamos a montar un sistema que detecta la presencia de gente mediante un PIR. Si hay alguien presente enciende unas luces [...] […]
    cogollo

RSS meipi

  • Traducción al catalán 10 de Marzo de 2010
    Os anunciaros que meipi.org ya se ha traducido al catalán gracias a la gente de Llefi@Net, Xarxa Ciutadana de Llefià. Llefi@Net es: un proyecto iniciado en 1999 por los ciudadanos y vecinos del barrio de Llefià de la ciudad de Badalona, que trabaja fomentando el conocimiento y uso de las nuevas tecnologías en el barrio con [...] […]
    pablo
  • Meipi à La Cantine pour CartoCamp 14 de Noviembre de 2009
    Aujourd’hui j’ai participé au CartoCamp (un BarCamp sur la cartographie) de Cartocube à La Cantine et j’ai pu rencontrer beaucoup d’acteurs de la cartographie en France. En un après-midi très dense il y a eu 15 atelier différents, tous sur des thématiques très intéressantes. Le but de ces rencontrer est, comme on dit à La Cantine, [...] […]
    immaginoteca
  • Meipi en la Laboral – Encuentro de Cartografía Ciudadana 4 de Noviembre de 2009
    Este verano tuvimos el placer de participar a las jornadas sobre cartografía ciudadana,  organizadas por Pablo de Soto (hackitectura.net) en la Laboral de Gijón. En esta ocasión aprovechamos para estrenar “oficialmente” meipi OPEN/S, la versión open source de nuestra plataforma. La experiencia nos ha gustado por múltiples razones. Una de ella es la posibilid […]
    immaginoteca