@byshabay

Почему функции, зависящие от Loop, используются вне Loop?

Я новичок в Wordpress, разбираюсь с Loop. Я дошла до переменных/функций, работающих внутри цикла. Например, get_permalink() без атрибута ID нужно использовать внутри цикла. В коде темы, сформированной с помощью underscores есть шаблон content.php, где присутствует такой кусок
if ( is_singular() ) :
			the_title( '<h1 class="entry-title">', '</h1>' );
		else :
			the_title( '<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' );
		endif;


Казалось бы, вне цикла, значит get_permalink() без атрибута работать не должна, но работает. Почему?
  • Вопрос задан
  • 44 просмотра
Решения вопроса 1
@thatguy1
Потому что WordPress очень любит использовать глобальные переменные. Функция get_permalink() принимает в качестве аргумента объект $post или post_id(т.е. можно передать id любого поста или любой объект $post в принципе), и по умолчанию этот аргумент ссылается именно на глобальный $post, поэтому это и работает вне цикла и без аргумента.
Эти функции рассчитаны на использование вне loop, потому что зачастую это и нужно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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