Como obtener el primer tag de un post de WordPress

Eduardo Arcos preguntó a través de Twitter si alguien tenía alguna idea de como obtener el primer tag de un post específico de WordPress fuera del loop. Así a bote pronto se me ocurre la siguiente idea que no está depurada todavía pero que puede ser la base para algo más acabado.

WordPress no tiene una función ya hecha para esto, pero podemos hacer una en nuestro archivo functions.php:

function get_first_tag($post_id) {
global $wpdb;
$tag_name = NULL;
if ($tag_id = $wpdb->get_var("SELECT term_id FROM $wpdb->term_relationships WHERE object_id = $post_id AND EXISTS (SELECT * FROM $wpdb->term_taxonomy WHERE $wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id AND taxonomy = 'post_tag') ORDER BY term_taxonomy_id LIMIT 1") ) {
$tag_name = $wpdb->get_var("SELECT name FROM $wpdb->terms WHERE term_taxonomy_id = $tag_id"); }

return $tag_name;
}

Esto nos debe dar el nombre del primer tag usado para un post cuya id nos sea conocida. No estoy seguro si WordPress los guarda alfabetizados o en orden de creación. Tampoco confío mucho en mi dominio de la clase $wpdb así que si no sirve tal vez sirva así:

$prefix = $wpdb->prefix;
 $strSQL = "SELECT term_id FROM ".$prefix."term_relationships WHERE object_id = 400 AND EXISTS (SELECT * FROM ".$prefix."term_taxonomy WHERE ".$prefix."term_relationships.term_taxonomy_id = ".$prefix."term_taxonomy.term_taxonomy_id AND taxonomy = 'post_tag') ORDER BY term_taxonomy_id LIMIT 1";

Y luego hacer el query y todo lo demás.

Espero que te sirva o por lo menos te oriente a una solución que sí sirva.