Intereting Posts
Как настроить значения по умолчанию для плагина? Как добавить значок на определенный палец WordPress Ajax не функционирует так, как я ожидаю … что случилось? WordPress Backend HA (автоматический переход на другой ресурс) Ссылка «Оставить комментарий», даже если вы не можете Как я могу отслеживать активных пользователей моего плагина? и почему WordPress.Org не предлагает это? Как установить, куда пользователь перенаправляется после входа в wp-login? Как правильно включить файлы PHP в плагинах Коллекция пользовательских типов сообщений, отображаемых в подменю После того, как вы закроете кнопку браузера в двадцати шестнадцати профиль темы Удаление пользовательских сообщений и метаданных при удалении Как правильно дезинфицировать строки для update_option () решение, препятствующее изменениям содержимого отдельных админов Переключение основного сайта в WordPress Multisite Фильтровать query_posts по тегу slug на странице «Tag Archive» (когда тег имеет 2 или более слова)

отображать самые популярные теги в двух столбцах

У меня есть раздел в боковой панели, где я бы хотел отображать самые популярные теги в двух столбцах. Я нашел этот пост от WPSnipp, который подробно описывает, как сузить список до только самых популярных, однако мне интересно, как я могу организовать их появление в двух столбцах – 10 слева, а 10 – в алфавитном порядке.

Вот что я использую: functions.php

<?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(' ', '&nbsp;', wp_specialchars( $tag )); if($i < 11){ print "<li><a href=\"$tag_link\">$tag ($count)</a></li>"; } } } ?> 

Боковая панель-r.php

 <h2 class="widgettitle">#HASHTAG</h2> <? $tags = top_tags(); $tags_count = count($tags); $number = ceil($tags_count / 2); $args = array('number' => $number); $tagsleft = get_tags($args); $args = array('number' => $number, 'offset' => $number); $tagsright = get_tags($args); $html = '<ul class="catleft">'; foreach ($tagsleft as $tag){ $tag_link = get_tag_link($tag->term_id); $html .= "<li><a href='{$tag_link}' title='{$tag->name} Tag' class='{$tag->slug}'>"; $html .= "{$tag->name}</a></li>"; } $html .= '</ul>'; $html .= '<ul class="catright">'; foreach ($tagsright as $tag){ $tag_link = get_tag_link($tag->term_id); $html .= "<li><a href='{$tag_link}' title='{$tag->name} Tag' class='{$tag->slug}'>"; $html .= "{$tag->name}</a></li>"; } $html .= '</ul>'; echo $html; ?> 

Solutions Collecting From Web of "отображать самые популярные теги в двух столбцах"

По-моему, вы делаете это так сложно.

Я бы предпочел сделать классический запрос, а затем через css, который он сделал в 2-столбце.

 function top_tags() { $tags = get_the_tags(); if($tags) { $output = '<h4>Top tags</h4> <ul class="top_tags">'; foreach($tags as $tag) $output .= '<li><a href="'.get_tag_link($tag->term_id).'" title="'.$tag->name.'">'.$tag->name.'</a></li>'; $output .= '</ul>'; echo $output; } } 

и ваш css

 .top_tags li {display:block; float:left; width:50%; clear:right;}