¿Por qué wp_get_object_terms agrega un punto después de los términos en la salida?

11 feb 2011, 19:50:13
Vistas: 1.29K
Votos: 0

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?

0
Todas las respuestas a la pregunta 1
2

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'
) );
11 feb 2011 20:13:59
Comentarios

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?

Travis Northcutt Travis Northcutt
11 feb 2011 20:42:07

Sí, está justo debajo de tu nariz: el filtro 'taxonomy_template'. Ver respuesta actualizada.

scribu scribu
11 feb 2011 20:46:52