Как вывести список всех статей на странице «Карта блога»

Здравствуйте, уважаемый читатель, блога inetsovety.ru! Сегодня я напишу о том, как сделать карту сайта, которая будет выводиться на отдельной странице и на ней посетители смогут посмотреть список опубликованных на блоге материалов. В первую очередь, карта сайта нужна для удобства Ваших посетителей. Когда на блоге (сайте) опубликовано пару десятков статей, не сложно пролистать архив и найти нужную. А вот когда число статей достигнет сотни, а то и перевалит за несколько, ориентироваться будет сложнее.

Кто-то может возразить, мол у меня все разбито по рубрикам, открывай любую и просматривай архив. Но в архиве на страницу выводится 5-10 записей и поэтому нужно долго листать со страницы на страницу, пока попадется нужная запись. Чтобы сэкономить время на поиски, создайте у себя на блоге страницу с картой блога, на которой будет выводится список статей.

Чем мне нравится движок WordPress, так это тем, что для него написано множество плагинов и дополнений.

И как Вы уже догадались, карту блога тоже можно легко создать с помощью специального плагина WordPress. Плагин для создания карты сайта на WordPress называется dagon design sitemap generator. Скачать его можно отсюда.

Настройки плагина Dagon Design Sitemap Generator

После установки плагина перейдем к его настройкам. Найти страницу настроек плагина Dagon Design Sitemap Generator в админке Вы сможете в разделе Параметры — DDSitemapGen.

Не пугайтесь, что все на английском. Язык меняется за минуту. Выберите русский язык и внизу нажмите на кнопку сохранить данные. Теперь все станет на русском. Настройки имеют множество вариантов, поэтому каждый сможет настроить карту сайта под себя. Сразу же под полем выбора языка, находится поле, в котором Вы можете указать число выводимых строк на странице карты блога. У меня выбрано 100, если хотите вывести все записи на одной странице, то поставьте 0.

Настройки Dagon Design Sitemap Generator

Далее Вы выбираете, что показывать и в каком порядке.

Как настроить карту сайта для WordPress

Далее выбираете подходящий для тип навигации между страницами карты сайта и его расположение. Также дополнительно можно выводить ссылку на карту сайта для поисковых систем. В соответствующем поле укажите ссылку на нее.

Как создать html карту сайта для людей на WordPress при помощи плагина

Создание страницы в редакторе

На этом настройка плагина dagon design sitemap generator завершена. Осталось создать страницу и назвать ее Карта сайта, или же придумать свое название. И вставить код в в HTML редакторе:

<!-- ddsitemapgen -->

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

как вывести карту сайта со списком всех статей на отдельной странице

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

Как создать карту сайта без плагинов

Для реализации вывода всех статей блога на отдельной странице без плагина мы сделаем следующее:

  1. Соединимся с хостингом любым фтп клиентом.
  2. Сделаем резервную копию файлов темы, на всякий случай. А в отдельную папку копируем файл page.php для последующего редактирования.
  3. Текстовым редактором Notepad++ внесем правки в файл page.php.
  4. Для новой страницы выберем в качестве шаблона только, что созданный файл.

Это было краткое описание последовательности работы. А теперь я распишу каждый шаг более подробно и с картинками.

Если Вы не знаете, как соединиться с хостингом при помощи клиента FileZilla читайте в статье https://inetsovety.ru/kak-polzovatsya-filezilla/

Далее заходим в папку сайта (если такова есть), если ее нет, то ищем папку public_html, в ней находим wp-content, а потом открываем themes. Как называется папка с темой, которая установлена на Вашем блоге, знаете только Вы. Сначала я рекомендую скопировать на компьютер, в то место, где Вы храните резервные копии файлов сайта, папку с шаблоном целиком. А потом в другое место на компьютере скопировать файл page.php.

Откройте его программой Notepad++. Обычный блокнот лучше не использовать, т.к. при сохранении могут возникнуть проблемы с кодировкой. Далее я буду показывать Вам редактирование файла page.php простой Вордпресс темы, которую я скачала в сети.

Вот такой код был у меня:

blogmap-1

У Вашей темы должно быть что-то похожее. Главное найдите в файле функции вызова шапки, сайдбара и футера. А остальное мы будем редактировать и удалять.

Поскольку мы создаем файл-шаблон, то это нужно указать непосредственно в файле специальным кодом.

Вот этот код:

<?php

/* Template Name: blogmap 

*/ 

?>

Его добавляем в самое начало файла до строчки с кодом вызова шапки. Его я стрелочкой выделила на картинке выше.

Что касается названия шаблона, которое прописывается в строчке Template Name: blogmap, то вместо blogmap можете любое другое название прописать, которое Вам больше нравится.

А вторая часть кода добавляется вместо того кода, который отвечает за вывод контента на странице. В моем случае в качестве контента на странице выводилась миниатюра, контент страницы и разбивка этого контента на страницы:

<?php if ( function_exists("has_post_thumbnail") && has_post_thumbnail() ) { the_post_thumbnail(array(300,225), array("class" => "alignleft post_thumbnail")); } ?>

<?php the_content('<p class="serif">Читать далее »</p>'); ?>

<?php wp_link_pages(array('before' => '<p><strong>Страницы:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>

Вместо этого кода, мы добавим код, который выведет список всех статей:

  <div class="blogmap">

       

 <!-- Вывод статей по категориям -->

                        <span class="post-cat"><h2>Статьи по категориям</h2>

 

                        <?php

 

                            $cats = get_categories();

                            foreach ( $cats as $cat ) {

 

                            query_posts( 'posts_per_page=-1&cat=' . $cat->cat_ID );

 

                        ?>

 

                            <h3><?php echo $cat->cat_name; ?></h3>

                            <ul>   

                                <?php while ( have_posts() ) { the_post(); ?>

                                <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>

                                <?php } wp_reset_query(); ?>

                            </ul>

 

                        <?php } ?></span>

  <!-- вывод списка страниц -->

                        <span>

                            <h2>Страницы</h2>

                            <ul>

                                <?php

        wp_list_pages('exclude=9999'); //**Сюда вставьте через запятую ID страниц, которые желаете исключить. Если таких страниц нет, то оставьте поле пустым.

    ?>

                            </ul>

                        </span>

 <!-- Начало вывода категорий -->

                        <span>

                            <h2>Категории блога:</h2>

                            <ul>

                                <?php wp_list_categories('title_li='); ?>

                            </ul>

</span>                    

<!-- Начало вывода архивов -->

                        <span> 

                            <h2>Архивы</h2>

                            <ul>

                                <?php wp_get_archives('type=monthly&show_post_count=0'); ?>

                            </ul>

</span>      

                </div>

Бонусом в этом коде добавлен вывод списка страниц, архивов и категорий. При желании Вы можете удалить их коды. Комментарии в коде подскажут Вам, что удалять.

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

Не исключено, что с первой попытки у Вас не заработает вывод карты сайта без плагина как надо. Не расстраивайтесь. Скопируйте заново файл page.php и проделайте все шаги заново. Может быть, Вам придется какую-то строчку кода удалить дополнительно в исходном файле. Вообще не бойтесь экспериментировать, но не забывайте о создании резервной копии исходного файла.

Публикую код моей страницы полностью с комментариями, возможно кому-то поможет. Смотрите под спойлером.

Код страницы для карты сайта

<?php

/* 

Template Name: blogmap 

*/ 

?>

<?php get_header(); ?>

<div class="outer" id="contentwrap">

	<div class="postcont">

		<div id="content">	



			<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

			<div class="post" id="post-<?php the_ID(); ?>">

			<h2 class="title"><?php the_title(); ?></h2><!-- Вывод названия страницы -->

				<div class="entry"><!-- класс стилей оформления поста -->

<?php the_content('')  ?><!-- добавляем эту функцию, если нужно вывести на странице текст -->

  <div class="blogmap">

       

 <!-- Вывод статей по категориям -->

                        <span class="post-cat"><h2>Статьи по категориям</h2>

 

                        <?php

 

                            $cats = get_categories();

                            foreach ( $cats as $cat ) {

 

                            query_posts( 'posts_per_page=-1&cat=' . $cat->cat_ID );

 

                        ?>

 

                            <h3><?php echo $cat->cat_name; ?></h3>

                            <ul>   

                                <?php while ( have_posts() ) { the_post(); ?>

                                <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>

                                <?php } wp_reset_query(); ?>

                            </ul>

 

                        <?php } ?></span>

  <!-- вывод списка страниц -->

                        <span>

                            <h2>Страницы</h2>

                            <ul>

                                <?php

        wp_list_pages('exclude=9999'); //**Сюда вставьте через запятую ID страниц, которые желаете исключить. Если таких страниц нет, то оставьте поле пустым.

    ?>

                            </ul>

                        </span>

 <!-- Начало вывода категорий -->

                        <span>

                            <h2>Категории блога:</h2>

                            <ul>

                                <?php wp_list_categories('title_li='); ?>

                            </ul>

</span>                    

<!-- Начало вывода архивов -->

                        <span> 

                            <h2>Архивы</h2>

                            <ul>

                                <?php wp_get_archives('type=monthly&show_post_count=0'); ?>

                            </ul>

</span>      

                </div>

	

				</div>

			</div>

			<?php endwhile; endif; ?>

		

		</div>

	</div>

	



<?php get_sidebars(); ?>



</div>

<?php get_footer(); ?>

В этом коде для оформления страницы используются классы, которые прописаны в файле style.css моей темы. У Вашей темы скорее всего они будут другие. Обращайте на это внимание при редактировании.

Сохраняйте изменения в файле. Назовите его новым именем, например blogmap.php. Скопируйте в папку с темой. В ту же папку откуда Вы копировали page.php.

Теперь создайте новую страницу, в правой колонке выберите только что созданный шаблон:

blogmap-2

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



2012-05-29T18:31:07
Блог на WordPress