Здравствуйте, сегодня создадим страничку, на которой выведем список всех опубликованных на сайте записей, страниц – то есть создадим карту сайта для людей (посетителей, пользователей).
Рассмотрим как создать карту сайта wordpress вручную и с помощью плагинов.
Скачать исходники для статьи можно ниже
Начнем с wordpress плагинов для создания Карты сайта:
1. HTML Page Sitemap
Обновление: 2015-1-11
Активных установок: 30 000+
Сайт плагина: “ru.wordpress.org/plugins/html-sitemap/screenshots/”
2. PS Auto Sitemap
Обновление: 2015-7-13
Активных установок: 80 000+
Сайт плагина: “ru.wordpress.org/plugins/wp-sitemap-page/”
…
Как создать карту сайта wordpress в ручную:
Можно воспользоваться следующим кусочком кода:
<?php query_posts('cat=3&showposts=10000'); if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; else: endif; wp_reset_query(); ?>
Как создать карту сайта wordpress с помощью вышеуказанного кода?
Для примера будет использована стандартная тема wordpress – Twenty Twelve.
Для начала желательно создать индивидуальный шаблон для страницы, где будет размещаться карта сайта.
Если у вас нет ftp доступа к сайту и нет доступа к хостингу сайта (менеджер файлов), то можно создать шаблон страницы с помощью кода из админки wordpress – более подробно описано тут – Как создать новый файл темы wordpress, вот, например, для сайта с активной темой Twenty Twelve код будет следующим:
<?php touch('wp-content/themes/twentytwelve/kartasite.php');?>
Его нужно прописать в файле header.php после тега “body”, чтобы зайти в него нужно в админке открыть пункт “Внешний вид” – подпункт “Редактор” – справа в списке шаблонов найти файл header.php:
... <body <?php body_class(); ?>> <?php touch('wp-content/themes/twentytwelve/kartasite.php');?> <div id="page" class="hfeed site"> ...
В итоге в списке файлов справа появится файл kartasite.php:
Теперь будем создавать код для данного файла kartasite.php – будущей карты сайта.
За основу возьмем код страницы (или записи)- page.php, только уберем из нее код вставки контента.
Заходим в файл page.php копируем весь код и вставляем его в файл kartasite.php
После нужно прописать имя индивидуального шаблона:
<?php /* Template Name: kartasita */
Далее убираем код контента и форма комментариев:
<?php while ( have_posts() ) : the_post(); ?> <?php get_template_part( 'content', 'page' ); ?> <?php comments_template( '', true ); ?> <?php endwhile; // end of the loop. ?>
После давайте пропишем рубрики и выведем с помощью кода список опубликованных записей данной рубрики.
Для того чтобы выводить список записей рубрики, нужно знать ID рубрики – как его узнать? – Достаточно в админке wordpress зайти в пункт “Записи” – подпункт “Рубрики”, навести мышкой на нужную рубрику и слева внизу посмотреть на ID рубрики:
или же кликнуть по названию рубрики, далее кликнуть по адресной строке и посмотреть ID рубрики:
В данном примере id рубрики равен 3.
После приступаем к созданию кода рубрики и списка записей данной рубрики в файле kartasite.php:
Названия рубрики можно украсить, например, картинкой:
<h4><a href="https://mnogoblog.ru/wp-content/uploads/2012/03/Stationery.png"><img class="size-full wp-image-2352 alignnone" title="Stationery" alt="" src="https://mnogoblog.ru/wp-content/uploads/2012/03/Stationery.png" width="64" height="64" /></a> Инструментарий Вебмастера и подготовка к работе с WordPress</h4>
А далее выводим список записей постов данной рубрики (в нашем примере id рубрики равен 3):
<?php query_posts('cat=3&showposts=10000'); if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; else: endif; wp_reset_query(); ?>
Далее создаем “Страницу” для отображения Карты сайта – заходим в админке в пункт “Страницы” – подпункт “Добавить новую” – называем её например “Карта сайта” и задаем ей шаблон с названием kartasite.php:
Также приведу примеры кода Карты сайта, которые нашел:
<h2 id="authors">Authors</h2> <ul> <?php wp_list_authors( array( 'exclude_admin' => false, ) ); ?> </ul> <h2 id="pages">Pages</h2> <ul> <?php // Add pages you'd like to exclude in the exclude here wp_list_pages( array( 'exclude' => '', 'title_li' => '', ) ); ?> </ul> <h2 id="posts">Posts</h2> <ul> <?php // Add categories you'd like to exclude in the exclude here $cats = get_categories('exclude='); foreach ($cats as $cat) { echo "<li><h3>".$cat->cat_name."</h3>"; echo "<ul>"; query_posts('posts_per_page=-1&cat='.$cat->cat_ID); while(have_posts()) { the_post(); $category = get_the_category(); // Only display a post link once, even if it's in multiple categories if ($category[0]->cat_ID == $cat->cat_ID) { echo '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>'; } } echo "</ul>"; echo "</li>"; } ?> </ul>
Еще один код Карты сайта для wordpress:
<h3>Pages</h3> <ul><?php wp_list_pages("title_li=" ); ?></ul> <h3>Feeds</h3> <ul> <li><a title="Full content" href="feed:<?php bloginfo('rss2_url'); ?>">Main RSS</a></li> <li><a title="Comment Feed" href="feed:<?php bloginfo('comments_rss2_url'); ?>">Comment Feed</a></li> </ul> <h3>Categories</h3> <ul><?php wp_list_cats('sort_column=name&optioncount=1&hierarchical=0&feed=RSS'); ?></ul> <h3>All Blog Posts:</h3> <ul><?php $archive_query = new WP_Query('showposts=1000&cat=-8'); while ($archive_query->have_posts()) : $archive_query->the_post(); ?> <li> <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a> (<?php comments_number('0', '1', '%'); ?>) </li> <?php endwhile; ?> </ul> <h3>Archives</h3> <ul> <?php wp_get_archives('type=monthly&show_post_count=true'); ?> </ul>