Я сделал этот сценарий,
<?php
function top_tags() {
$tags = get_tags();
if (empty($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 );
}
asort($counts);
$counts = array_reverse( $counts, true );
$i = 0;
foreach ( $counts as $tag => $count ) {
$i++;
$tag_link = clean_url($tag_links[$tag]);
$tag = str_replace(' ', ' ', wp_specialchars( $tag ));
if($i < 11){
print "<li><a href=\"$tag_link\">$tag ($count) </a></li>";
}
}
}
?>
Но я не могу получить tag_description за тег. Ничего не показывает если использую $description = tag_description();
в функции foreach.
Как насчет этого:
<?php
function top_tags() {
$tags = get_tags();
if (empty($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 );
}
asort($counts);
$counts = array_reverse( $counts, true );
$i = 0;
foreach ( $counts as $tag => $count ) {
$i++;
$tag_link = clean_url($tag_links[$tag]);
$tag_description = tag_description(get_term_by('name', $tag, 'post_tag')->term_id);
$tag = str_replace(' ', ' ', wp_specialchars( $tag ));
if($i < 11){
print "<li><a href=\"$tag_link\">$tag ($count) </a> $tag_description </li>";
}
}
}
?>
Более эффективный способ сделать это (не проверено):
<?php
function top_tags() {
$tags = get_tags();
if (empty($tags))
return;
$counts = $tag_links = array();
foreach ( (array) $tags as $tag ) {
$counts[$tag->name] = $tag->count;
$tag_links[$tag->name] = array( 'url' => get_tag_link( $tag->term_id ), 'description' => $tag->description);
}
asort($counts);
$counts = array_reverse( $counts, true );
$i = 0;
foreach ( $counts as $tag => $count ) {
$i++;
$tag_link = clean_url($tag_links[$tag]['url']);
$tag_description = $tag_links[$tag]['description'];
$tag = str_replace(' ', ' ', wp_specialchars( $tag ));
if($i < 11){
print "<li><a href=\"$tag_link\">$tag ($count) </a> $tag_description </li>";
}
}
}
?>
Просто чтобы прокомментировать вашу идею, которую не стоит использовать, вы можете использовать tag_description
внутри вашего foreach
цикл как следовать
$description = tag_description($tag->term_id);
Приведенный выше метод не является неправильным, но get_tags
уже возвращает описание тега, которое вы можете вернуть следующим образом
$tag->description
РЕДАКТИРОВАТЬ
Чтобы увидеть, что возвращается get_tags
сделайте следующее
$tags = get_tags;
?><pre><?php var_dump($tags); ?></pre><?php