Как вывести статьи по рубрикам на отдельной странице
В используемом шаблоне создаем файл main-page.php (пример как для главной, копируем из page.php). В начале файла добавляем (таким образом файл попадает в шаблоны):
<?php
/*
Template Name: Главная страница
*/
?>
Заходим в меню админки: Страницы -> Добавить новую, затем в Атрибуты страницы -> Шаблон выбираем наше оформление (в примере Главная страница).
Вывод рубрик
<?php
$arg_cat = [
'orderby' => 'name', // сортировка по названию
'order' => 'ASC', // сортировка от меньшего к большему
'hide_empty' => 1, // скрыть пустые рубрики
'exclude' => 19, // id рубрики, которые надо исключить
'include' => '', // id рубрики, из которых надо выводить
'taxonomy' => 'category', // название таксономии
];
$categories = get_categories($arg_cat);
if($categories){
foreach( $categories as $cat ){
echo $cat->name;
}
}
?>
Вывод записей
<?php
$arg_posts = [
'orderby' => 'name', // сортировка по имени
'order' => 'ASC', // от меньшего к большему
'posts_per_page' => 3, // по три поста
'post_type' => 'post', // тип записи "посты"
'post_status' => 'publish', // опубликованные посты
'cat' => $cat->cat_ID, // получаем id рубрик
];
$query = new WP_Query($arg_posts);
if($query->have_posts()){
while($query->have_posts()){
$query->the_post();
?>
<div class="main-page-post">
<a href="<?php the_permalink(); ?>">
<!--?php the_post_thumbnail( 'widgetfull' );?-->
</a>
<a href="<?php the_permalink(); ?>"><!--?php the_title(); ?--></a>
</div>
<?php
}
wp_reset_postdata();
}
?>