WP_Cumulus и список всех тегов
Для большей красоты и привлекательности страниц, я поставил себе в блог плагин WP_Cumulus. Этот плагин с помощью флеша делает объемным список тегов. Информацию по настройке этого плагина вы сможете найти на странице по указанной выше ссылке. Плагин очень красивый и очень легко встраивается в сайдбар.
У этого плагина есть одно большое достоинство и один большой недостаток. Достоинством является его эстетическая красота и объемность.
Когда я первый раз увидел такое облако тегов, я как завороженный смотрел на эту красоту и не мог отвести взгляда. Но у этой красоты есть большой недостаток: эта красота сделана на флеше. Дело в том, что большинство поисковиков не умеют индексировать флеш. В рунете один гугл в гордом одиночестве внедряет инновационные технологии. Поэтому для остальных поисковиков нужен список тегов на HTML, чтобы поисковики могли проиндексировать все теги. К тому же не очень удобно, когда множество тегов громоздятся в маленьком флеш-баннере, обычно во флеш генерируется только часть тегов. Все остальные обычно лежат на отдельной странице.
Итак, задача стоит такова: создать страницу, которая будет генерить весь список тегов.
Список тегов
Каждая страница в wordpress имеет шаблон, т.е. основу, на которой будет создана страница. Для списка тегов, шаблон страницы будет довольно простой. В этом случае нужно просто вывести список тегов. Список можно вывести с помощью функции wp_tag_cloud().
void wp_tag_cloud(string $args)
Параметры:
- string $args – строка с аргументами. Аргументы передаются следующим образом: arg1=value1&arg2=value2&arg3=value3. Аргументы могут быть такими:
- smallest – минимальный размер шрифта (по умолчанию 8);
- largest – максимальный размер шрифта (по умолчанию 22);
- unit – единица измерения шрифта (по умолчанию pt);
- number – количество меток в облаке (по умолчанию 45);
- format – разделитель: flat – пробел, list – список, array – массив (по умолчанию flat);
- orderby – сортировка тегов: name – по имени, count – по количеству записей (по умолчанию name);
- order – порядок сортировки: ASC – прямой, DESC – обратный (по умолчанию ASC);
- exclude – теги, которые должны быть исключены;
- include – теги, которые должны быть включены.
Т.е. для вывода всего списка тегов нужно вызвать эту функцию приблизительно с такими параметрами:
При настройке этого плагина, можно указывать любые параметры данной функции.
Шаблон
Шаблон для страницы со списком тегов очень просто сделать. Заходим в папку /wp-conent/themes/имя_текущей_темы, создаем файл alltags.php. В него пишем:
<?php /* Template Name: AllTags */ ?> <?php get_header(); ?> <style> .tagscloud{ margin-left:20px; padding:10px; position:relative; z-index:2; display:inline; } </style> <div id="content" class="widecolumn tagscloud"> <h2>Список всех тегов</h2> <?php wp_tag_cloud('smallest=12&amp;orderby=name&&order=ASC'); ?> </div> <?php include_once 'sidebar.php';?> <?php get_footer(); ?>
Теперь по порядку разберем, что к чему в этом шаблоне.
/*
Template Name: AllTags
*/Этот текст должен быть в начале каждого шаблона. Он задает имя шаблона. Теперь при создании новой страницы, можно будет выбрать шаблон с именем AllTags.
Функция get_header() отобразит шапку, а функция get_footer() отобразит низ шаболна. Инструкция
Подключит сайдбар. Он должен лежать рядом с шаблоном. Если его нет или вы не хотите, чтобы он отображался, то не подключайте его.
Теперь можно создать страницу. В разделе админки Страници->Добавить страницу нужно ввести заголовок, скажем Все теги, а в разделе Атрибуты выбрать шаблон AllTags.
Меню
Теперь можно перейти на главную. Но что это? Мы видим страницу в меню. Так оно по логике вещей и должно быть, но все-таки хотелось бы иметь инструмент в админке для управления видимостью страницы в меню. Возможно где-то есть плагин, который умеет это делать. Но искать неизвестно какой плагин, неизвестно где очень не хочется. Поэтому лучше поищем в документации функцию, которая генерит меню. Эта функция имеет имя wp_list_pages().
void wp_list_pages(sting $args)
Параметры:
- $args – строка с агрументами, такая-же как и в функции wp_tag_cloud(). У функции wp_list_pages тоже очень много аргументов, но сейчас нас интересует лишь одно.
- exclude – страницы, которые не будут показаны. Идентификаторы страниц должны быть указаны через запятую.
Теперь, как узнать идентификатор только что созданной страницы? Самый простой способ: в разделе Страницы админки, посмотреть ссылку нужной страницы. Там будет что-то вроде http://www.web-junior.net/wp-admin/page.php?action=edit&post=69 . Так вот 69 – это и есть идентификатор, который нам нужен. Параметр для wp_list_pages будет выглядеть так: exclude=69.
Для того, чтобы отредактировать вызов функции, нужно зайти в /wp-content/themes/имя_темы, найти и отредактировать файл header.php. В этом файле где-то в конце (а возможно и в начале) должен быть вызов функции wp_list_pages() с параметрами. У меня это выглядит так:
<?php wp_list_pages('title_li=' ); ?>
Теперь нужно добавить свой параметр exclude.
<?php wp_list_pages('title_li=&&exclude=69' ); ?>
После сохранения файла, в меню страница должна отсутствовать.
Ссылка в облаке
Теперь на страницу нет ссылки в меню. Но нужно предоставить пользователю ссылку возле облака тегов в сайдбаре. В файле /wp-content/plugins/wp-cumulus/wp-cumulus.php найдите функцию wp_cumulus_widget(). В ней после
<?php echo $after_widget; ?>
допишите ссылку на страницу
<a title="Отобразить все теги" href="/vse-tegi">Все теги</a>
Теперь можно сохранить все файлы и просто смотреть на сгенерированное облако тегов.
Популярность: 4%
И не забывайте комментировать статью.
