Интересно, может ли кто-нибудь объяснить следующее: я следую учебному пособию по WordPress, я вижу, что этот код используется для циклического просмотра поста и его отображения, однако я немного запутался в том, что на самом деле здесь происходит.
<?php
if( have_posts() ):
while( have_posts() ): the_post(); ?>
<h3><?php the_title(); ?></h3>
<p><?php the_content(); ?></p>
<?php endwhile;
endif;
?>
Конкретный раздел, который меня касается, это while( have_posts() ): the_post(); ?>
Итак, во-первых, здесь синтаксис не тот, который я видел раньше, у вас есть скобки цикла while, которые открываются и закрываются, а затеместь : the post()
что это за вторая часть?Я думаю, что условие для цикла while должно быть внутри while()
.Что это за : the_post()
что он делает?
также, метод have_posts()
возвращает true, если есть сообщения, я не понимаю, почему это не бесконечный цикл, так как, конечно, have_posts()
всегда будет верным, пока в базе данных есть хотя бы один пост.
наконец, мне нравится использовать короткие теги PHP, теперь, когда я это делаю, этот код больше не работает, вот моя версия этогокод с короткими тегами, может кто-нибудь показать мне, где я иду не так.
<? if ( have_posts() ): ?>
<? while ( have_posts() ) : the_post(): ?>
<h3><?php the_title(); ?></h3>
<p><?php the_content(); ?></p>
<? endwhile; ?>
<? endif; ?>
PHP шторм выделяет последние :
в <? while ( have_posts() ) : the_post(): ?> as the error, but if I change it to a
; `я получаю следующую ошибку
Warning: count(): Parameter must be an array or an object that implements Countable in C:\laragon\www\blog\wp-includes\post-template.php on line 293
Я понимаю, что здесь есть пара вопросов, я прошу прощения, я просто хочу полностью понять, что на самом деле происходит здесь, а не просто слепо копировать и вставлять.Надеюсь, вы понимаете.
Заранее спасибо.