И так приступим.
Для начала нужно создать файл и назвать его к примеру sitemap.php. Данный файл будет новым шаблоном страницы. Чтобы он стал таковым нам нужно открыть его и и в самом начале вставить следующий код.
<?php
/*
Template Name: Карта сайта
*/
get_header(); ?>
Так мы подключаем шапку и задаем имя шаблону - Карта сайта.
Далее нужно вставить нужный div, для этого Вам надо открыть файл page.php из папки шаблона и посмотреть что внем идет после подключения шапки. у меня например так
<div id="primary">
///Тут внутри цикл///
</div>
Нам нужно вместо цикла вставить следующий код, который как раз таки и выведет нашу карту .
Вот и сам код.
<ul class="sm_bl">
<?php
$ref_month = '';
$monthly = new WP_Query(array('posts_per_page' => -1));
if( $monthly->have_posts() ) : while( $monthly->have_posts() ) : $monthly->the_post();
if( get_the_date('mY') != $ref_month ) {
if( $ref_month );
echo '<h3>'.get_the_date('F Y').'</h3>';
$ref_month = get_the_date('mY');
}
echo ' <li><a href='.get_permalink($post->ID).'>'.get_the_title($post->ID).'</a>';
endwhile;
echo '';
endif;
?></ul>
Сложного тут ничего нет, цикл выводит функция WP_Query. В начале цикла выводим Дату, а потом список записей.
Данный код заключен в тег ul, так что записи будут выводится в виде списка. Присваиваем класс для стилей, например sm_bl, а для того что бы выделить Дату, заключаем в h3 например.
В самом конце файла вставляем вывод сайдбара и подвала, лучше всего смотрите как у Вас сделано в том же page.php. Но для примера должно быть так:
<?php get_sidebar(); ?>
<?php get_footer(); ?>
В итоге, готовый файл у меня получилось как в примере ниже, но у Вас может отличаться, если у Вас в другой div заключен цикл, поэтому смотрите внимательно, чтобы потом не было проблем с отображением.
<?php
/*
Template Name: Карта сайта
*/
get_header(); ?>
<div id="primary">
<ul class="sm_bl">
<?php
$ref_month = '';
$monthly = new WP_Query(array('posts_per_page' => -1));
if( $monthly->have_posts() ) : while( $monthly->have_posts() ) : $monthly->the_post();
if( get_the_date('mY') != $ref_month ) {
if( $ref_month );
echo '<h3>'.get_the_date('F Y').'</h3>';
$ref_month = get_the_date('mY');
}
echo ' <li><a href='.get_permalink($post->ID).'>'.get_the_title($post->ID).'</a>';
endwhile;
echo '';
endif;
?></ul>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Следующим шагом будет добавление стилей для корректного отображения нашей карты. Как обычно их нужно прописать в файл style.css.
/*Карта сайта*/
ul.sm_bl h3{margin:10px 0;font-size:24px;}
ul.sm_bl a{color:#5CB934;font-size:14px;line-height:25px;width:98%;}
Вот по сути и все. Стили как обычно крутим под себя и не стесняемся усовершенствовать 🙂 Если все сделано правильно у Вас получится карта сайта не хуже чем от плагина 🙂
Пример такой карты смотрите у меня здесь
На этом все, спасибо за внимание