Вы здесь
Главная > Мой блог > WEB-разработка > WordPress > Карта сайта для WordPress — с плагином или без?

Карта сайта для WordPress — с плагином или без?

Создание карты сайта для WordPress решает сразу две задачи — облегчает поисковику быстро проиндексировать все страницы блога и помогает читателю быстро найти нужную ему статью. И для ее создания блоггеры часто используют популярный плагин карты сайта WordPress — Dagon Design Sitemap Generator. Мы также не будем отделяться от коллектива и обязательно его рассмотрим в видеоуроке, но также изучим еще одну возможность — создать карту сайта без плагина.

Карта сайта Вордпресс
Итак, почему я рекомендую делать карту без плагина? По разным данным, даже такой классный и продвинутый плагин, как DDSitemapGen делает множество запросов в базу данных — по разным данным от 100 до 150 запросов, — нагружая сервер и замедляя загрузку страницы. Мы уже избавлялись от лишних запросов в уроке про уменьшение количества запросов в БД, так зачем же лишний раз ее еще раз напрягать? Давайте создадим все своими ручками!

Открываем файл single.php в Блокноте или NotePad++, находим код, который выводит основной контент записи на страницу и полностью его удаляем — остается только html разметка, типа

1 <div id="content">
2
3 здесь был код вывода записи
4 </div>

И теперь вместо старого кода WordPress вставляем туда нижеприведенный:

1 <h2 id="authors">Авторы</h2>
2 <ul>
3 <?php
4 wp_list_authors(
5   array(
6     'exclude_admin' => false,
7   )
8 );
9 ?>
10 </ul>
11
12 <h2 id="pages">Страницы</h2>
13 <ul>
14 <?php
15 // Add pages you'd like to exclude in the exclude here
16 wp_list_pages(
17   array(
18     'exclude' => '',
19     'title_li' => '',
20   )
21 );
22 ?>
23 </ul>
24 <h2 id="posts">Статьи</h2>
25 <ul>
26 <?php
27 // Добавляем категории, которые хотим исключить
28 $cats = get_categories('exclude=');
29 foreach ($cats as $cat) {
30   echo '<li><strong>Категория:</strong> <a href="' . get_category_link( $cat->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $cat->cat_name ) . '" ' . '>' . $cat->cat_name.'</a>';
31   echo "<ul>";
32   query_posts('posts_per_page=-1&cat='.$cat->cat_ID);
33   while(have_posts()) {
34     the_post();
35     $category = get_the_category();
36     // Показываем ссылку один раз, если она отнесена к нескольким категориям одновременно
37     if ($category[0]->cat_ID == $cat->cat_ID) {
38       echo '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
39     }
40   }
41   echo "</ul>";
42   echo "</li>";
43 }
44 ?>
45 </ul>

а в самом начале файла, сразу после

1 <?php

добавляем несколько строк

1 /*
2 Template Name: Site Map
3 */

и сохраняем этот файл под именем map.php

Далее загружаем его в текущую тему оформления. Заходим в админку и создаем новую страницу.

А в правом сайдбаре, в разделе Атрибуты страницы — Шаблон, в выпадающем списке выбираем Site Map. Озаглавливаем страницу как «Карта сайта» и сохраняем с пустым текстом. Все, заходим на вновь созданную страницу и видим классную карту без всяких плагинов.

Добавить комментарий

Top