Как создать страницу с архивами записей, сгруппированными по месяцам, в WordPress?
Здравствуйте!
Я новичок в WordPress и столкнулся с проблемой. Мне нужно создать страницу, на которой будут отображаться архивы записей, сгруппированные по месяцам. Я понимаю, что для этого нужно написать свой код, но я не совсем уверен, каким образом это сделать.
Буду очень благодарен, если кто-то сможет помочь и предоставить пример кода, который реализует создание страницы с архивами записей, сгруппированными по месяцам в WordPress.
// Пример кода, в котором нужна помощь
// Функция для создания страницы с архивами записей
function create_archives_page() {
$args = array(
'post_type' => 'post',
'posts_per_page' => -1,
'orderby' => 'date',
'order' => 'DESC'
);
$query = new WP_Query($args);
$archives = array();
while ($query->have_posts()) {
$query->the_post();
$month_year = get_the_date('F Y');
$archives[$month_year][] = get_permalink();
}
wp_reset_postdata();
// Вывод архивов записей
foreach ($archives as $month_year => $posts) {
echo '' . $month_year . '
';
echo '';
foreach ($posts as $post) {
echo '- ' . get_the_title() . '
';
}
echo '
';
}
}
// Вызов функции для создания страницы с архивами записей
create_archives_page();
Заранее спасибо за помощь!
Ответы:
Чтобы создать страницу с архивами записей, сгруппированными по месяцам в WordPress, нужно использовать функцию `WP_Query` для получения списка всех записей и затем сгруппировать их по месяцам.
Вот пример кода, который реализует эту задачу:
// Функция для создания страницы с архивами записей
function create_archives_page() {
$args = array(
'post_type' => 'post',
'posts_per_page' => -1,
'orderby' => 'date',
'order' => 'DESC'
);
$query = new WP_Query($args);
$archives = array();
while ($query->have_posts()) {
$query->the_post();
$month_year = get_the_date('F Y');
$archives[$month_year][] = get_permalink();
}
wp_reset_postdata();
// Вывод архивов записей
foreach ($archives as $month_year => $posts) {
echo '<h2>' . $month_year . '</h2>';
echo '<ul>';
foreach ($posts as $post) {
echo '<li><a href="' . $post . '">' . get_the_title() . '</a></li>';
}
echo '</ul>';
}
}
// Вызов функции для создания страницы с архивами записей
create_archives_page();
Этот код использует `WP_Query` для получения всех записей (`post_type = 'post'`) и сортировки их по дате (`orderby = 'date'` и `order = 'DESC'`). Затем каждая запись сгруппирована по месяцам с помощью функции `get_the_date('F Y')`. Полученные архивы записей сохраняются в массив `$archives`. Затем происходит вывод архивов на страницу с помощью циклов `foreach`.
Вы можете использовать этот код как основу для создания своей страницы с архивами записей. Просто вставьте его в нужное место вашего шаблона WordPress, например, в файл `page.php` или `archive.php`. Убедитесь, что у вас подключена библиотека WordPress и правильно настроен запрос к базе данных.
Удачи вам с вашим проектом!