WordPress удаляет разделитель из последнего элемента в категориях списка wp
Я пытаюсь удалить последний разделитель (обычно тег <br/>
, но я изменил его на "//") из последней ссылки из wp_list_categories.
В основном я хочу этого:
Категория 1//Категория 2//Категория 3//
Чтобы выглядеть так:
Категория 1//Категория 2//Категория 3
Вот текущий код, который я использую:
<?php
$cat_array = array();
$args = array(
'author' => get_the_author_meta('id'),
'showposts' => -1,
'caller_get_posts' => 1
);
$author_posts = get_posts($args);
if ( $author_posts ) {
foreach ($author_posts as $author_post ) {
foreach(get_the_category($author_post->ID) as $category) {
$cat_array[$category->term_id] = $category->term_id;
}
}
}
$cat_ids = implode(',', $cat_array);
echo strtr(wp_list_categories('include='.$cat_ids.'&title_li=&style=none&echo=0'),array('<br />'=>' // '));
?>
3
Author: Krzysiek Dróżdż, 2010-08-20
3 answers
Измените последнюю строку на следующую:
$output = strtr( wp_list_categories( 'include='.$cat_ids.'&title_li=&style=none&echo=0' ), array( '<br />' => ' // ' ) );
echo preg_replace( '@\s//\s\n$@', '', $output );
2
Author: John P Bloch, 2010-08-20 16:20:12
У вас там происходит много обработки строк. Возможно, вам будет лучше вывести результаты в виде списка
wp_list_categories('include='.$cat_ids.'&title_li=');
И стилизуем его с помощью css:
li.cat-item { list-style-type: none; display: inline; }
li.cat-item:before { content: " // "; }
li.cat-item:first-child:before { content: none; }
Просто еще одна альтернатива для рассмотрения...
4
Author: goldenapples, 2010-08-20 17:49:01
Другой вариант, взорваться -> всплывающее окно -> взорваться...
$output = explode( '<br />', wp_list_categories( 'include='.$cat_ids.'&title_li=&style=none&echo=0' ) );
array_pop($output);
echo implode(' // ',$output);
2
Author: t31os, 2010-12-19 01:30:53