Разница между функциями 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 если сомневаетесь, посмотрите код. QueryPosts — отличный сайт для поиска исходного кода функций WordPress.

Если вы посмотрите в WordPress Codex по этому вопросу, то увидите, что get_permalink()
предназначена для использования вне цикла. the_permalink()
используется внутри цикла. Это самый простой способ их различать.

the_permalink()
используется в циклах записей, аналогично the_title()
. Подробнее о циклах можно прочитать в The Loop.
get_permalink()
может использоваться как внутри циклов, так и вне их. Внутри цикла функция возвращает (не выводит) постоянную ссылку текущей записи. Но вне циклов требуется указать ID записи.
Например:
echo get_permalink( 1 );
Так будет выведена постоянная ссылка текущей страницы:
echo get_permalink();
