Для обеспечения полноценной навигации по блогу излюбленными методами являются меню страниц и категорий и облако тегов. Обычно облако тегов помещают в сайдбаре или внизу страницы блога. Однако такая навигация выглядит хорошо, пока облако тегов не очень большое. Когда же блог, существуя несколько лет, обрастет метками (тегами), коих станет так много, что любое облако из них будет нависать как грозовая туча или же туман, становясь больше самого содержимого на странице, то невольно становится актуальным выбор другого, более компактного способа навигации по записям с помощью тегов. Одним из таких методов является организация выпадающего списка тегов.
Для того, чтобы сделать фильтр по тегам в виде выпадающего списка, добавьте в шаблон следующий код:
Метки
<form action=”/” method=”get”>
<?php $select = wp_dropdown_categories(‘taxonomy=post_tag&show_option_none=Select tag&show_count=1&orderby=name&echo=0’); $select = preg_replace(“#]*)>#”, “”, $select); echo $select; ?>
Откройте файл functions.php, и добавьте в него:
function dropdown_tag_cloud( $args = '' ) { $defaults = array( 'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 45, 'format' => 'flat', 'orderby' => 'name', 'order' => 'ASC', 'exclude' => '', 'include' => '' ); $args = wp_parse_args( $args, $defaults ); $tags = get_tags( array_merge($args, array('orderby' => 'count', 'order' => 'DESC')) ); if ( empty($tags) ) return; $return = dropdown_generate_tag_cloud( $tags, $args ); if ( is_wp_error( $return ) ) return false; else echo apply_filters( 'dropdown_tag_cloud', $return, $args ); } function dropdown_generate_tag_cloud( $tags, $args = '' ) { global $wp_rewrite; $defaults = array( 'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 255, 'format' => 'flat', 'orderby' => 'name', 'order' => 'ASC' ); $args = wp_parse_args( $args, $defaults ); extract($args); if ( !$tags ) return; $counts = $tag_links = array(); foreach ( (array) $tags as $tag ) { $counts[$tag->name] = $tag->count; $tag_links[$tag->name] = get_tag_link( $tag->term_id ); if ( is_wp_error( $tag_links[$tag->name] ) ) return $tag_links[$tag->name]; $tag_ids[$tag->name] = $tag->term_id; } $min_count = min($counts); $spread = max($counts) - $min_count; if ( $spread < = 0 ) $spread = 1; $font_spread = $largest - $smallest; if ( $font_spread using_permalinks() ) ? ' rel="tag"' : ''; foreach ( $counts as $tag => $count ) { $tag_id = $tag_ids[$tag]; $tag_link = clean_url($tag_links[$tag]); $tag = str_replace(' ', ' ', wp_specialchars( $tag )); $a[] = "t$tag ($count)"; } switch ( $format ) : case 'array' : $return =& $a; break; case 'list' : $return = "
-
- nt
- “; $return .= join(“
nt
-
- “, $a); $return .= “
n
n”; break; default : $return = join(“n”, $a); break; endswitch; return apply_filters( ‘dropdown_generate_tag_cloud’, $return, $tags, $args ); }
В том месте, где нужно вывести выпадающий список тегов, вставьте: метки.
А можно такое же сделать с рубриками и подрубриками?
Как-то не очень подробно описано все. Я не хочу просто использовать код, я хочу его понять.