Разница между функциями the_permalink() и get_permalink()
В WordPress я использую обе функции the_permalink() и get_permalink(), но не могу увидеть никакой разницы в выводе обеих функций. В чём разница между этими функциями?
the_permalink выводит постоянную ссылку текущей записи на фронтенд.
get_permalink, однако, возвращает её как переменную, но не выводит. Вы также можете передать ID записи, если хотите получить постоянную ссылку другой записи.
the_permalink эквивалентен:
echo get_permalink();
Что очень близко к тому, что он фактически делает. Вот реализация the_permalink:
function the_permalink() {
echo esc_url( apply_filters( 'the_permalink', get_permalink() ) );
}
Это означает, что все функции, такие как the_ID() и get_ID(), имеют аналогичные различия. Простите, но я новичок в WordPress, поэтому спрашиваю.
AliasgerSW
@AliasgerSW это общая схема, есть некоторые исключения, но в основном это так.
Nicolai Grossherr
@AliasgerSW если сомневаетесь, посмотрите код. QueryPosts — отличный сайт для поиска исходного кода функций WordPress.
shea
Если вы посмотрите в WordPress Codex по этому вопросу, то увидите, что get_permalink() предназначена для использования вне цикла. the_permalink() используется внутри цикла. Это самый простой способ их различать.
the_permalink() используется в циклах записей, аналогично the_title(). Подробнее о циклах можно прочитать в The Loop.
get_permalink() может использоваться как внутри циклов, так и вне их. Внутри цикла функция возвращает (не выводит) постоянную ссылку текущей записи. Но вне циклов требуется указать ID записи.
Например:
echo get_permalink( 1 );
Так будет выведена постоянная ссылка текущей страницы:
echo get_permalink();