Создаем и стилизуем метки в wordpress

Октябрь 23, 2018 20:27 Admin

Метки на сайте служат дополнительным способом навигации и позволяют найти информацию по конкретным ключевым словам. WordPress предоставляет подобный функционал прямо из коробки, поэтому создание меток (тегов) в рамках данной системы управления является достаточно простой задачей, которой посвящена данная статья.

Создаем и выводим метки на сайте

Создать метки в системе управления wordpress можно в разделе записи > метки, а также на страницах конкретных записей (рис.1).

Рис.1 post-tags

После того, как метки созданы их можно выводить на сайте. Для этого достаточно воспользоваться стандартным виджетом wordpress под названием «Облако меток». Заходим в раздел Внешний вид > Виджеты и переносим виджет «Облако меток» в нужный нам сайтбар (рис.2). После этого на сайте, в зависимости от использованного сайтбара, будут выводиться указанные ранее метки.

Рис.2 cloud-tags

Стилизуем метки под стиль сайта и меняем размер шрифта

За вывод и получение меток (тегов) в wordpress отвечает функция wp_tag_cloud(), которая принимает на вход массив со следующими параметрами:

  • smallest – указывается минимальный размер шрифта меток с меньшим количеством записей.
  • largest — указывается максимальный размер шрифта меток с наибольшим количеством записей.
  • unit – единицы измерения параметров smallest и largest. Может быть указан любой CSS тип размера: pt, px, em и т.д.
  • number – максимальное количество меток, которое будет выведено. Если установить 0, то будут указаны 45 меток по умолчанию.
  • format – формат вывода списка; может иметь значения flat, list или array.
  • separator – текст между метками, если параметр format указан в flat.
  • orderby – способ сортировки; может иметь значения name (по умолчанию) или count.
  • order – порядок сортировки, который может иметь значения ASC, DESC или RAND (хаотичный порядок).
  • exclude – исключить метку; указывается ID через запятую.
  • include – показывать только указанные метки; указывается ID через запятую.
  • link – куда будет вести ссылка метки; view (попадаем на страницу метки) или edit (попадаем на страницу редактирования метки).
  • taxonomy – название таксономии или массив нескольких названий; может иметь значения: post_tag, category, link_category, массив (с версии 3.1) или своя таксономия.
  • echo – 0 или 1, где 0 — возвращает результат для обработки, 1 — выводит на экран.
  • show_count — показывать количество записей в метке; может иметь значение 0, 1 или true, false.
  • topic_count_text_callback — функция, которая получает количество записей и возвращает текст для метки (по умолчанию default_topic_count_text). Можно установить свою.

Самый оптимальный вариант для того чтобы изменить максимальный и минимальный размеры шрифта указанные по умолчанию — это добавить в файл functions.php темы следующий фильтр:

<?php
add_filter('widget_tag_cloud_args', function( $args ) {
  $args['unit'] = "px";
  $args['smallest'] = 12;
  $args['largest'] = 16;
  return $args;
});
?>

После этого минимальный и максимальный размер шрифта ссылок у меток изменится на 12px и 16px соответственно.

Внешний вид меток можно стилизовать в стилях темы, указав для класса tag-cloud-link нужные вам стили. Кроме того, если возникла необходимость заменить у ссылок меток название классов на свои или добавить дополнительный класс — это можно сделать, указав в файле functions.php темы следующий фильтр:

<?php
add_filter("wp_generate_tag_cloud_data", function( $tags_data ) {
  foreach ($tags_data as $key => $tag) {
    $tags_data[$key]['class'] = "tag-cloud-link tag-link-".$tag["id"]." my-new-class";
  }
  return $tags_data;
});
?>

Здесь переменная $tags_data содержит массив ссылок для меток. В нашем случае мы добавили ко всем ссылкам свой дополнительный класс my-new-class, который можем благополучно использовать для стилизации меток.

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