Задать вопрос
@M1yamoto
Первые шаги в мире программирования.

Почему некорректно работает проверка наличия постов?

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

<ul class="article__list">
				
	<?php
		if ( $posts ) {
			global $post;
			$myposts = get_posts( [
				'posts_per_page' => -1,
				'offset' => 4
			] );
    			foreach( $myposts as $post ){
				setup_postdata( $post );
	?>
			<li><a class="article__link" href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
	<?php
			}
				} else {
    	?>
			<h2 class="no-articles">
				Здесь пока ничего нет.
			</h2>
	<?php
				}
				
			wp_reset_postdata();
	?>
				
	</ul>
  • Вопрос задан
  • 125 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    Курс по WordPress с нуля до результата. Создание сайтов без кода
    2 недели
    Далее
  • beONmax
    Профессия WordPress разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фулстек-разработчик расширенный
    20 месяцев
    Далее
Решения вопроса 1
v3xx
@v3xx
// _ AppSec // Bug Bounty / Legal Hacking
Привет.

Потому что есть путаница в переменных и в логике действий в целом.

Будет иметь больше смысла:
$myposts = get_posts( [
	'posts_per_page' => -1,
	'offset'         => 4, // советую переосмыслить нужность этого параметра
	'post_status'    => 'publish',
] );

if ( ! empty( $myposts ) ) {
	global $post;
	foreach ( $myposts as $post ) {
		setup_postdata( $post );
		...
	}
	wp_reset_postdata(); 
} else {
	...
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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