Разница между функциями the_permalink () и get_permalink ()


9

В WordPress я использую обе функции the_permalink()и get_permalink()функции, но я не могу получить никакой разницы в выводе обеих функций. В чем разница между обеими функциями?

Ответы:


16

the_permalink Отобразить постоянную ссылку текущего сообщения на веб-интерфейс.

get_permalinkоднако возвращает его как переменную, но не выводит его. Вы также можете передать ему идентификатор сообщения, если хотите получить постоянную ссылку на другое сообщение.

the_permalink эквивалентно:

echo get_permalink();

Что очень близко к тому, что он на самом деле делает. Это реализация the_permalink:

function the_permalink() {
    echo esc_url( apply_filters( 'the_permalink', get_permalink() ) );
}

3
Это означает, что все функции, такие как the_ID () и get_ID (), также имеют такие же различия, как это. Извините, но я новичок в WordPress, поэтому спрашиваю
AliasgerSW

@AliasgerSW это шаблон, есть некоторые исключения, но в целом это так
Николай

@AliasgerSW, если сомневаетесь, посмотрите на код. QueryPosts - отличный сайт для поиска исходного кода функций WordPress.
Ши

@ AliasgerSW это сделано наша собственная @Rarst
ши

@shea QueryPosts удален. : - (\
Я самый глупый человек

3

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


может быть, простой способ взглянуть на это, но не очень полный
Николай

Конечно, @Tom J Nowell ♦ ответ гораздо более лаконичен. Намного лучше и хорошо объяснено :-)
Matt Royal

-1

the_permalink()используется в сообщениях петли, как the_title(). Узнайте больше о петлях в The Loop .

get_permalink()можно использовать в петлях или вне петель. В циклах функция возвращает (не отображает) текущую постоянную ссылку. Но за пределами цикла требуется идентификатор сообщения.

Например:

echo get_permalink( 1 );

Это отобразит постоянную ссылку текущей страницы:

echo get_permalink();

1
на самом деле это не требует идентификации вне цикла
Николай
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.