Cоздание шаблона страницы для карты сайта

Все знают что карта сайта это хорошо, но для создании карты сайта на WordPress обычно используется плагин. Это конечно прекрасно, но плагин таки кушает память, так что лучше обойтись без плагинов. Будем делать карту сайта с помощью шаблонов страницы.

Для начала создадим в папке с темой файл template-sitemap.php

Потом откроем этот файл в редакторе и первым делом напишем следующие строки:

<?php
    /* Template Name: Sitemap */
?>

по этим строкам wordpress будет знать что template-sitemap.php это шаблон Sitemap.

далее пишем такую вот заготовку:

<?php get_header(); ?>
<div id="content">
    <div class="post">
        <h2><?php the_title(); ?></h2>
        <div class="entry">
        </div><!-- <div class="entry"> -->
        <div class="entry">
        </div><!-- <div class="entry"> -->
        <div class="entry">
        </div><!-- <div class="entry"> -->
    </div><!-- <div class="post"> -->
</div><!-- <div id="content"> -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Как вы видите у нас тут 3 пустых дива с классом entry, в первом будут страницы, во втором категории, а в третьем записи разбитые по категориям.

Начинаем с первого дива с классом entry. Внутри него пишем:

<h3>Страницы</h3>
<ul>
    <?php wp_list_pages('title_li=&sort_column=menu_order'); ?>
</ul>

Мы тут выводим список страниц отсортированный по порядку(который вы задавали при создании страницы)

Во втором диве пишем:

<h3>Категории</h3>
<ul>
    <?php wp_list_categories('title_li=&show_count=1'); ?>
</ul>

Здесь мы выводим список категорий с выводом количества записей в каждой категории, так же вы можете здесь указать еще один параметр hierarchical=0, для того чтобы категории выводились просто списком, без иерархии.

Третий див будет самый большой, в нем пишем:

<h3>Записи по категориям</h3>
<?php
    $cats = get_categories();
    foreach ($cats as $cat) {
        $postincats = new WP_Query('cat='.$cat->cat_ID);
?>
<h4><?php echo $cat->cat_name; ?></h4>
<?php if ($postincats->have_posts()) : ?>
    <ul>
        <?php while ($postincats->have_posts()) : $postincats->the_post(); ?>
            <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li></li>
        <?php endwhile; ?>
    </ul>
<?php endif; ?>
<?php } ?>

Тут мы заносим в переменную $cats все категории, далее в цикле для каждой категории мы создаем новый запрос и выводим записи этой категории.

Вот и все, шаблон для карты сайта создан. Теперь вы можете при создании страницы или при редактировании существующей выбрать шаблон – Sitemap.

Скачать