Perché wp_get_object_terms aggiunge un punto dopo i termini nell'output?
Sto utilizzando la seguente riga di codice per generare una lista non ordinata di tassonomie e i relativi termini associati a un custom post type. L'unico problema è che viene aggiunto un punto dopo ogni termine.
wp_get_object_terms( $id, the_taxonomies( 'before=<ul><li>&sep=</li><li>&after=</li></ul>' ) );
Ecco cosa restituisce:
<ul><li>Taxname: <a href='http://site.com/taxname/taxterm/'>Taxterm</a>.</li></ul>
C'è un argomento che posso aggiungere a wp_get_object_terms
per rimuovere il punto?

wp_get_object_terms() non è il problema. the_taxonomies() è la funzione che effettua l'output; non restituisce nulla.
Quindi, il tuo codice è equivalente a:
the_taxonomies( 'before=<ul><li>&sep=</li><li>&after=</li></ul>' );
wp_get_object_terms( $id, null );
Ora, se vai in wp-includes/taxonomy.php troverai il punto nel sorgente di the_taxonomies().
Per rimuovere il punto, devi aggiungere un filtro:
function remove_the_dot($template) {
return '%s: %l';
}
add_filter('taxonomy_template', 'remove_the_dot');
Nel caso te lo stessi chiedendo, sì, questo è un modo scomodo di fare le cose.
In WP 3.1, puoi modificare il template semplicemente passandolo come parametro:
the_taxonomies( array(
'before' => '<ul><li>',
'sep' => '</li><li>',
'after' => '</li></ul>',
'template' => '%s: %l'
) );

Grazie. Presumo che questa riga (in get_the_taxonomies
) sia la causa? $template = apply_filters('taxonomy_template', '%s: %l.');
Se è così, c'è un buon modo per farlo ed evitare i punti?
