¿Por qué wp_get_object_terms agrega un punto después de los términos en la salida?
Estoy usando la siguiente línea para mostrar una lista desordenada de taxonomías y sus términos asociados para un tipo de publicación personalizado. El único problema es que se agrega un punto después del término.
wp_get_object_terms( $id, the_taxonomies( 'before=<ul><li>&sep=</li><li>&after=</li></ul>' ) );
Esto es lo que muestra:
<ul><li>Taxname: <a href='http://site.com/taxname/taxterm/'>Taxterm</a>.</li></ul>
¿Hay algún argumento que pueda agregar a wp_get_object_terms
para eliminar el punto?
wp_get_object_terms() no es el problema. the_taxonomies() es el que realiza la salida; no devuelve nada.
Por lo tanto, tu código es equivalente a:
the_taxonomies( 'before=<ul><li>&sep=</li><li>&after=</li></ul>' );
wp_get_object_terms( $id, null );
Ahora, si vas a wp-includes/taxonomy.php encontrarás el punto en el código fuente de the_taxonomies().
Para eliminar el punto, necesitas agregar un filtro:
function remove_the_dot($template) {
return '%s: %l';
}
add_filter('taxonomy_template', 'remove_the_dot');
En caso de que te lo preguntes, sí, esta es una forma incómoda de hacer las cosas.
En WP 3.1, puedes modificar la plantilla simplemente pasándola como parámetro:
the_taxonomies( array(
'before' => '<ul><li>',
'sep' => '</li><li>',
'after' => '</li></ul>',
'template' => '%s: %l'
) );

Gracias. ¿Supongo que esta línea (en get_the_taxonomies
) es la que lo causa? $template = apply_filters('taxonomy_template', '%s: %l.');
Si es así, ¿hay alguna buena manera de hacer esto y evitar los puntos?
