@falwxey

Вопрос о циклах в wordpress?

Здравствуйте.Можете объяснить, почему не выводиться список постов на главной. тема underscores. Что я сделал ; взял файл шаблона page.php , дублировал, переименовал в front-page.php, создал страницу
"Главная" вставил туда верстку, все работает.
В настройках чтения указал статическую страницу "Главная" .
Взял код цикла
<div id="primary" class="content-area">
		<main id="main" class="site-main">

		<?php
		while ( have_posts() ) :
			the_post();

			get_template_part( 'template-parts/content', 'page' );

			// If comments are open or we have at least one comment, load up the comment template.
			if ( comments_open() || get_comments_number() ) :
				comments_template();
			endif;

		endwhile; // End of the loop.
		?>

		</main><!-- #main -->
	</div><!-- #primary -->

вставил в нужном месте, но посты не отображаются, только заголовок текущей страницы. Когда в настройках чтения меняю на
@На главной странице отображать : ваши послед записи@ , то цикл отрабатывает. Я примерно понимаю, что дело в иерархии, но не могу в ней толком разобраться. Может есть у Вас ссылка на "пережованный" текст или видео буду очень благодарен
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix
Java Software Engineer
Здравствуйте!
По поводу названия шаблона...
front-page.php подразумевает статичную страницу,
home.php подразумевает блок с последними записями.

В этом коде внутри цикла выводится контент, для страницы template-parts/content, page:
<?php
    while ( have_posts() ) :
      the_post();
      get_template_part( 'template-parts/content', 'page' );
    endwhile; // End of the loop.
    ?>

Что конкретно лежит внутри этого шаблона я не знаю. Смотрите в директории template-parts/content-page.php

А если вы хотите вывести записи на статичной странице, то сделайте следующее:
https://wp-kama.ru/function/wp_query

// задаем нужные нам критерии выборки данных из БД
$args = array(
	'posts_per_page' => 5,
);

$query = new WP_Query( $args );

// Цикл
if ( $query->have_posts() ) {
	while ( $query->have_posts() ) {
		$query->the_post();
		echo '<li>' . get_the_title() . '</li>';
	}
} else {
	// Постов не найдено
}
/* Возвращаем оригинальные данные поста. Сбрасываем $post. */
wp_reset_postdata();
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы