Формирование тегов статей на отдельной странице по алфавиту

16 Дек 2014 в 0:14

Данный статья пригодится тем, кто хочет сформировать облако тегов статей сайта на отдельной странице в алфавитном порядке.

Подобная страница будет большим помощником посетителям Вашего сайта, если на нем присутствует большое количество разнородного контента. С помощью подобной страницы облегчается поиск по темам сайта и пользователи Вашего сайта легко найдут интересующий их материал. А вот для небольших блогов и сайтов подобная страница не очень и нужна.

Если Вы владелец сайта-портала или каталога, то отдельная страница с тегами, отсортированными в алфавитном порядке поможет посетителям Вашего ресурса быстро найти нужный им материал.

Теги статей можно вывести в несколько колонок, в зависимости от ширины страницы с контентом на Вашем сайте.

Для получения подобного списка тегов:

Вывод каталога тегов
необходимо проделать определенную работу на Вашем сайте.

Вот и рассмотрим все по порядку.

1. Приведение тегов статей к однозначности.

Для начала необходимо провести работу с тегами каждой статьи. У каждой статьи Вашего сайта должны быть теги. Если одинаковые теги начинаются с большой и маленькой букв, то это разные теги и будут выведены отдельными строками, т.е. на сайте необходимо привести теги к однозначности! Это очень трудоемкая работа, но она того стоит.

2. Вывод тегов статей сайта на отдельную страницу.

  • Создание файла с именем template-tags.php. Для его создания необходимо скачать из хостинга на свой компьютер файл page.php вашей темы и внести в него следующие изменения:
    • переименовать скачанный файл page.php в template-tags;
    • переименованный файл template-tags.php записать на хостинг в папку с Вашей темой.
  • Далее будем работать редактором WordPress. В админпанели Вашего сайта перейдите в строку меню "Редактор":

Выбор строки меню "Редактор"

Справа, в списках файлов шаблонов должен появится новый файл template-tags.php:
Catalog3

Открываем его для редактирования:

а) В файле строки:

<?php get_header(); ?>
<!--page.php-->

Заменить на следующие строки:

<?php  /* Template Name: template-tags.php */
get_header(); 
?>

Новыми строками в файл добавляется название шаблона и вызывается шапка страницы Вашего сайта. Название можно писать как английскими (в нашем случае это "template-tags.php") так и русскими буквами. Можно назвать его, например, "Страница тегов" или "Каталог". Но название обязательно должно быть между символами /* Template Name: Название шаблона */, если название в одной строке с вызовом функции "<?php".

б) Удалите цикл вывода строки текста страницы. Код цикла выглядит примерно так, но, может содержать и другие теги:

<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
    <h1><?php the_title(); ?></h1>
    <?php the_content(); ?>
здесь могут быть еще какие-то теги........
<?php endwhile; endif; ?>
Вместо него, необходимо вставить в файл следующий код:
<?php
     $tags = get_tags('orderby=name&order=ASC');
     $capital = '';
     $i = 0;
       $cols_number = 2; // Количество колонок
       $cut = ceil( count($tags)/$cols_number );
       $cutter = $cut;
       $letter_i = 0;
       $output = '<div class="column">';
       foreach ( $tags as $tag ) {
       $i++;
       $firstletter = mb_substr($tag->name, 0, 1);
         if ( $firstletter !=  $capital ) {
            $letter_i++;
            if ( $letter_i != 1 ) $output .= '';
               if ( $i > $cutter ) {
                  $output .= '</div><div class="column">';
                  $cutter = $cutter + $cut;
         }
         $capital = $firstletter;
         $output .= '<div class="tag-title">' . $capital . '</div>';
       }
       $term = get_term_by('id', (int)$tag->term_id, 'post_tag');
       $output .= '<p><a href="' . get_term_link( (int)$tag->term_id,
'post_tag' ) . '">' . $tag->name . '</a> (' . $term->count . ')</p>';
    }
    echo $output . '</div>';
?>

в) Удалите строки вызова сайтбара, если не хотите, чтобы на этой странице показывались сайтбары:

<!--include sidebar-->
<?php include (TEMPLATEPATH . "/sidebar1.php");?> 
<?php include (TEMPLATEPATH . "/sidebar2.php"); ?>

Сохранить файл с внесенными изменениями.

в) Далее необходимо внести изменения в файл стилей style.css.  Откройте его редактором и добавьте в самый конец файла:

/*  Catalog    */
 
#catalog {
  margin-bottom: 20px;
}
#catalog p {
  margin: 0 0 5px 0;
}
.tag-title {
  font-size: 18px;
  margin: 10px 0 7px 0 !important;
  font-weight: normal;
}
.column {
  float: left; 
  width: 48%; 
}

Вышеуказанный код будет выводить теги в алфавитном порядке в 2 колонки. Есть для Вашего сайта нужно другое количество колонок, то внесите следующие изменения:

  • в файле  template-tags.php в переменной $cols_number = 2;цифру 2 замените на 4.
  • в файле стилей в селекторе .column в параметре width укажите 24%.

Далее необходимо создать новую страницу, указав для нее шаблоном вновь созданный файл.

Загрузите свой сайт. В меню сайта  должна появится новая страница с каталогом тегов сайта.

Буду благодарна, если Вы поделитесь этой статьей:

0

Рубрики: 2.2. Настройка WordPress


Отзывов пока нет.

Ваш отзыв