Intereting Posts
Показать сообщение категории с текстом выдержки Пользовательский запрос num_rows возвращает неправильную сумму Получать все оставшиеся сообщения после определенного идентификатора сообщения Как удалить & nbsp; от hr в текстовом редакторе wordpress Если вы хотите отображать файлы без изображения в Галерее с логотипом, специфичным для типа файла Использование промежуточных медиафайлов на сайте разработки в WordPress Использовать mulitple имена пользователей? Как разрешить пользователям добавлять фотографию / изображение вместо серого / белого силуэта? Пользовательский тип сообщения и «fopen» При перемещении установки WordPress на новый сервер, почему я должен обновлять каждое сообщение до того, как будет показано содержание? Передача данных POST с одной должности WP на другую add_submenu_page для отображения таблицы видео Скрыть изображение, если термин таксономии пуст Пользовательский родительский шаблон Post Post как элемент меню Как переписать URI пользовательского типа сообщения?

Индивидуальный класс css для каждого тега в wp_tag_cloud

Помогите, это, вероятно, лучший способ получить контроль над стилем wp_tag_cloud …

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

Я также нашел этот фрагмент, чтобы добавить классы слизняков, и они прекрасно работают прямо из коробки. Мне просто пришлось поместить их в файл functions.php.

Я пытался заставить решение работать так же, как работает решение номер два, но с именами классов на основе размера, а не с именами slug или даже с обоими. Однако я не могу понять это и нуждаюсь в помощи. Заранее спасибо.

попробуйте этот код:

add_filter ( 'wp_tag_cloud', 'tag_cloud_font_size_class' ); function tag_cloud_font_size_class( $taglinks ) { $tags = explode('</a>', $taglinks); $regex1 = "#(.*style='font-size:)(.*)((pt|px|em|pc|%);'.*)#e"; $regex2 = "#(style='font-size:)(.*)((pt|px|em|pc|%);')#e"; $regex3 = "#(.*class=')(.*)(' title.*)#e"; foreach( $tags as $tag ) { $size = preg_replace($regex1, "(''.round($2).'')", $tag ); //get the rounded font size $tag = preg_replace($regex2, "('')", $tag ); //remove the inline font-size style $tag = preg_replace($regex3, "('$1tag-size-'.($size).' $2$3')", $tag ); //add .tag-size-{nr} class $tagn[] = $tag; } $taglinks = implode('</a>', $tagn); return $taglinks; } 

могут быть более эффективные решения или способ перевести все это в одно регулярное выражение; однако он работает (я не эксперт в preg_replace ()). может использоваться одновременно с фильтром класса slug .

возможно, лучший / более простой подход подключается к «wp_generate_tag_cloud_data»;)

 function tribalpixel_tag_cloud_class($tags_data) { foreach ($tags_data as $key => $tag) { $tags_data[$key]['class'] = $tags_data[$key]['class'] ." myCustomClass"; } return $tags_data; } add_filter('wp_generate_tag_cloud_data', ' tribalpixel_tag_cloud_class'); 

в теге $ у вас есть [id], [url], [name], [title], [slug], [real_count], [class], [font_size]

Поэтому, если вы хотите создать собственный класс для каждого тега, вы можете использовать что-то вроде:

 $tags_data[$key]['class'] = "tag-link-".$tag['slug'];