Хочу рассказать как сделать удобную страницу тегов, разбитых на колонки и отсортированных по алфавиту. Все удобство для посетителя заключается в том, что теги наглядно разделены, что позволяет легко найти нужный тег. И в качестве бонуса рядом с тегом стоит количество постов, помеченных этим тегом.
Для начала нужно создать шаблон страницы, назовем его template-tags.php
Далее вставьте в него следующий код:
<?php
/*
Template Name: Теги
*/
get_header(); ?>
<div id="content">
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<div class="hentry-meta">
<h1><?php the_title(); ?></h1>
</div>
<div class="hentry-content clear">
<div class="tags">
<?php
$tags = get_tags('orderby=name&order=ASC');
$capital = '';
$i = 0;
$cols_number = 4; // Количество колонок
$cut = ceil( count($tags)/$cols_number );
$cutter = $cut;
$letter_i = 0;
$output = '<div class="column">';
foreach ( $tags as $tag ) {
$i++;
$firstletter = mb_substr($tag->name, 0, 1);
if ( $firstletter != $capital ) {
$letter_i++;
if ( $letter_i != 1 ) $output .= '</ul>';
if ( $i > $cutter ) {
$output .= '</div><div class="column">';
$cutter = $cutter + $cut;
}
$capital = $firstletter;
$output .= '<h4>' . $capital . '</h4><ul>';
}
$term = get_term_by('id', (int)$tag->term_id, 'post_tag');
$output .= '<li><a href="' . get_term_link( (int)$tag->term_id, 'post_tag' ) . '">' . $tag->name . '</a> (' . $term->count . ')</li>';
}
echo $output . '</ul></div>';
?>
</div>
</div>
</div> <!-- .page -->
<?php endwhile; // end of the loop. ?>
</div><!-- #content -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Структура страницы вашей темы отличается от моего примера, поэтому вам нужно будет скорректировать его, например, посмотрите код вашего page.php. Вся логика вывода тегов находится в блоке с классом tags.
Добавим стили, вставьте их в ваш styles.css:
/***** Tags *****/
.clear:after {content: "."; display: block; height: 0; clear: both; visibility: hidden;}
* html .clear {zoom: 1; clear: both;}
*+html .clear {zoom: 1; clear: both;}
.page-template-template-tags-php h4 {font-weight: bold; text-transform: uppercase;}
.page-template-template-tags-php .hentry-content {width: 620px; overflow: hidden;}
.page-template-template-tags-php .hentry-content .tags {width: 640px;}
.page-template-template-tags-php .hentry-content ul {list-style: none; margin: 0 0 15px 0;}
.page-template-template-tags-php .hentry-content ul li {color: #898989;}
.page-template-template-tags-php .hentry-content .column {width: 140px; float: left; margin-right: 20px;}
Опять же, поправьте стили, учитывая ваш шаблон.
Теперь осталось только создать статическую страницу и назначить ей шаблон Теги. Должно получится примерно вот так, как на скриншоте:

красиво получилось
Спасибо! Забираю в закладки.
Да действительно полезная вещь, я как раз собирался делать блог на котором нужны все теги в алфавитном порядке. спасибо большое.
Спасибо. Все получилось
Интересная и удобная вещь. Спасибо!
Я хотел бы узнать, а есть ли плагин подобного действия, только для вывода не тегов, а всех категорий на отдельной странице, с такой же разбивкой по колонкам? За пример с тегами большое спасибо.
Насчет плагина не знаю, проще этот код модифицировать для категорий
Спасибо за ответы, только они мало помогают, так как односложные )). Резонный вопрос, как переделать, чтобы из тегов стали выводится категории? Если не сложно и есть свободное время, то напишите, пожалуйста, код. Сам бы мог — не спрашивал бы ))
Второй вопрос. У меня есть категория, в ней есть подкатегории. Нужно сделать так, чтобы в главной категории выводился список всех подкатегорий с разбивкой на произвольное кол-во колонок (как например вот тут m0006.gamecopyworld.com/g...cw_index_2.shtml). Шаблон категории основной будет сменен на уникальный, в него вставлен код вывода все подкатегорий главной категории. Подскажите, как это сделать, или лучше код напишите. Если сложно и требует больших физ. и умственных затрат — огласите цену, можно на мыло. Спасибо.
oktano, я как раз этим сейчас занимаюсь, нужна помощь — пиши.