squitcher
@squitcher
Верстальщик

Как вывести записи только из дочерних рубрик?

Решено:

<?php query_posts( 'category_name=special_cat&posts_per_page=10' ); ?>

	<div <?php post_class(); ?> id="post-<?php the_ID(); ?>">
		<h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
		<?php the_content(); ?>
	</div>

<?php while ( have_posts() ) : the_post(); ?>
	<!-- Do special_cat stuff... -->
<?php endwhile; ?>
  • Вопрос задан
  • 462 просмотра
Пригласить эксперта
Ответы на вопрос 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
О боги, ну сколько можно повторять, никогда не используйте query_posts!

1. Используйте WP_Query или хук pre_get_posts
2. В WP_Query используйте Tax_Query:
$args   = [
    'posts_per_page' => 10,
    'tax_query'      => [
        'relation' => 'AND', // объединяем результаты по двум инструкциям
        // Инструкция 1 - получить все посты из родительской категории и ее потомков
        [
            'taxonomy'           => 'category',
            'field'                    => 'slug',
            'terms'                  => 'special_cat',
            'include_children' => true,
        ],
        // Инструкция 2 - а теперь исключить все посты родительской категории
        [
            'taxonomy'            => 'category',
            'field'                     => 'slug',
            'terms'                   => 'special_cat',
            'include_children' => false,
            'operator'              => 'NOT IN',
        ],
    ],
];
$result = new WP_Query( $args );
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы