@smirnovilya

WordPress. Как вывести дочерние страницы?

Здравствуйте, только начал изучать эту CMS. Уже голова кругом.
Сваял такой вот код, но он выводит только посты, а надо чтобы на странице выводил дочерние СТРАНИЦЫ первого уровня (без их дочек). Что подправить подскажите. Перечитал многое, голова кругом а времени на решение задачи почти не осталось.
___
<?php if(have_posts()) : query_posts();while (have_posts()) : the_post();?>
<div class="col-md-4 col-sm-6 text-center">
	<div class="item" id="special-block">
		<div class="image">
			<img src="<?php echo get_template_directory_uri();?>/img/items-bg.png" alt="<?php single_post_title() ?>">
		</div>
		<h3><a href="<? the_permalink();?>" class='h-link'><? the_title();?></a></h3>
	</div>
</div>
<?php endwhile; endif; wp_reset_query(); ?>

При том если указать к примеру
<?php if(have_posts()) : query_posts('cat=3');while (have_posts()) : the_post();?>
то он выводит то что нужно, но не создавать же для каждой родительской страницы шаблон с ее id.
  • Вопрос задан
  • 891 просмотр
Пригласить эксперта
Ответы на вопрос 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
1. Никогда не используйте query_posts(). Это первое, что должен усвоить начинающий WordPress-разработчик. Забудьте, что вы когда-либо видели эту функцию и что она вообще существует. Используйте get_posts() или WP_Query, или хук pre_get_posts если нужно модифицировать основной цикл. Все это есть в документации.
2. По поводу страниц не совсем понятен use case - что конкретно и где вам надо вывести. Для вывода одной страницы используется шаблон page.php. Если вам нужен "архив" страниц, то вы что-то делаете не так - они не предназначены для этого. Используйте custom post type.
3. Страницы, посты и custom post types отличаются именно типом (post_type), который можно передавать аргументом в WP_Query, get_posts() или pre_get_post - 'post_type' => 'page' (если аргументы передаются массивом) или &post_type=page (если строкой аргументов).

Напишите более подробно где и что вы хотите получить, с какой целью. Тогда проще будет объяснить.

UPD: Рабочий код в комментах
Ответ написан
Ваш ответ на вопрос

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

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