Как сделать карту сайта в виде архивов для WordPress без плагинов
Приветствую Вас, дорогие читатели блога. Сегодня я хочу Вам рассказать как сделать не плохую карту сайта на блог WordPress с помощью архива записей.
Я как обычно начинаю отказываться от плагинов. У меня стоял плагин, который автоматически делал данную карту сайта, но единственное, что меня не устраивало это формат сортировки записей. Они сортировались по рубрикам. Подробнее: название рубрики, и отображение всех записей которые находятся в ней.
Мне больше нравится сортировка по месяцам, а именно название месяца и все отображение всех записей, которые были опубликованы в этот месяц. Так как я в php не силён, я погрузился в поиски данного кода, оказалось его не так легко и найти, но несколько дней мучений и попыток всё же дали свои плоды, и теперь Вы можете полюбоваться тем, что у меня получилось. Посмотреть мою новую карту сайта Вы можете тут.
Если Вас устраивает такой формат, я научу как её сделать. Сразу скажу, что тут ничего сложного нет. Ну а теперь, поехали.
Карта сайта для WordPress с помощью архивов и без плагинов.
Демо
PHP
С самого начала нам нужно зайти в админку нашего блога, затем во Внешний вид и редактор, там найти файл page.php и открыть его. Затем на рабочем столе создать текстовый документ и скопировать в него все содержимое page.php.
Далее в нашем текстовом документе нужно найти вот эту строчку <?php the_content(); ?> и вместо неё вставить вот этот код:
< ?php $counter = 0; $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 "\n".''; echo "\n".'<h3>'.get_the_date('F. Y').'</h3>'; echo "\n".'<ul>'; $ref_month = get_the_date('mY'); $counter = 0; } if( $counter++ < 100 ) echo "\n".' <li><a href='.get_permalink($post->ID).'>'.get_the_title($post->ID).'</a>'; endwhile; echo "\n".'</ul>'; endif; ?>
Давайте посмотрим, что получилось у меня:
< ?php /* Template Name: sitearchives */ ?> < ?php get_header(); ?> <!-- begin colLeft --> <div id="colLeft"> < ?php if (have_posts()) : while (have_posts()) : the_post(); ?> <!-- Начало .singlecont --> <div class="singlecont"> <h1 class="home">< ?php the_title(); ?></h1> <div class="hrdown"></div> <div class="textPreview"> < ?php $counter = 0; $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 "\n".''; echo "\n".'<h3>'.get_the_date('F. Y').'</h3>'; echo "\n".'<ul>'; $ref_month = get_the_date('mY'); $counter = 0; } if( $counter++ < 100 ) echo "\n".' <li><a href='.get_permalink($post->ID).'>'.get_the_title($post->ID).'</a>'; endwhile; echo "\n".'</ul>'; endif; ?> < ?php endwhile; else: ?> <p>< ?php _e('Sorry, no posts matched your criteria.'); ?></p> < ?php endif; ?> <div class="hrdown"></div> </div><!-- Конец .синглконтент --> </div> </div> <!-- Конец colleft --> < ?php get_sidebar(); ?> < ?php get_footer(); ?>
Затем следует сохранить наш текстовый документ под названием sitearchives.php.
Если у Вас в месяц выходит более 100 записей, то Вам нужно отредактировать вот эту строчку if( $counter++ < 100 ) где цифра 100 это количество отображаемых записей в месяц. Если у Вас в месяц получается меньше 100 записей, тогда редактировать ничего не нужно.
Установка
У нас получился новый файл для карты сайта из архивов для WordPress — sitearchives.php. Сейчас нам нужно его скинуть в папку с установленной темой. На Вашем хостинг аккаунте нужно зайти в корневую папку сайта затем в wp-content, далее в themes, теперь находим папку с названием нашей темы и скидываем туда sitearchives.php.
Скинули? Ура :-) Теперь идём в админку блога потом в Страници и Добавить новую. Там вводим название нашей страницы, например «Архивы» или Карта сайта, как Вам больше понравится. Теперь в блоке с правой стороны под названием «Атрибуты страницы» и в поле «Шаблон» выбираем sitearchives.
Теперь нажимаем на «Опубликовать» и любуемся нашей новой картой сайта отсортированной по месяцам.
Друзья, вот и всё, что хотелось сказать по этому поводу. Не знаю как Вам но мне очень нравится данный стиль сортировки записей. Надеюсь и Вам понравится.
Если у Вас возникнут какие либо вопросы обязательно задавайте их в комментариях, ну а теперь до скорых встреч.