Почему wp_get_object_terms добавляет точку после вывода терминов?
Я использую следующую строку для вывода неупорядоченного списка таксономий и связанных с ними терминов для пользовательского типа записи. Единственная проблема в том, что после термина добавляется точка.
wp_get_object_terms( $id, the_taxonomies( 'before=<ul><li>&sep=</li><li>&after=</li></ul>' ) );
Вот что выводится:
<ul><li>Название таксономии: <a href='http://site.com/taxname/taxterm/'>Термин таксономии</a>.</li></ul>
Есть ли аргумент, который я могу добавить в wp_get_object_terms
, чтобы убрать точку?

Проблема не в wp_get_object_terms(). Функция the_taxonomies() занимается выводом и ничего не возвращает.
Таким образом, ваш код эквивалентен:
the_taxonomies( 'before=<ul><li>&sep=</li><li>&after=</li></ul>' );
wp_get_object_terms( $id, null );
Если вы заглянете в wp-includes/taxonomy.php, то найдете точку в исходном коде функции the_taxonomies().
Чтобы убрать точку, вам нужно добавить фильтр:
function remove_the_dot($template) {
return '%s: %l';
}
add_filter('taxonomy_template', 'remove_the_dot');
Если вам интересно, то да, это действительно неудобный способ сделать это.
В WordPress 3.1 вы можете изменить шаблон, просто передав его как параметр:
the_taxonomies( array(
'before' => '<ul><li>',
'sep' => '</li><li>',
'after' => '</li></ul>',
'template' => '%s: %l'
) );

Спасибо. Я полагаю, эта строка (в get_the_taxonomies
) вызывает проблему? $template = apply_filters('taxonomy_template', '%s: %l.');
Если да, то есть ли хороший способ сделать это и избежать точек?
