И так приступим.
Для начала нужно создать файл и назвать его к примеру 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%;}
Вот по сути и все. Стили как обычно крутим под себя и не стесняемся усовершенствовать 🙂 Если все сделано правильно у Вас получится карта сайта не хуже чем от плагина 🙂
Пример такой карты смотрите у меня здесь
На этом все, спасибо за внимание