Здравствуйте, сегодня создадим страничку, на которой выведем список всех опубликованных на сайте записей, страниц – то есть создадим карту сайта для людей (посетителей, пользователей).
Рассмотрим как создать карту сайта 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="/wp-content/uploads/2012/03/Stationery.png"><img class="size-full wp-image-2352 alignnone" title="Stationery" alt="" src="/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>

