Różnica między funkcjami the_permalink () i get_permalink ()

9

W WordPress używam obu the_permalink()i get_permalink()funkcji, ale nie mogę uzyskać żadnej różnicy w wydajności obu funkcji. Jaka jest różnica między obiema funkcjami?

AliasgerSW
źródło

Odpowiedzi:

16

the_permalink wysyła echo bezpośredniego linku bieżącego postu do interfejsu.

get_permalinkzwraca jednak jako zmienną, ale nie echa. Możesz także przekazać identyfikator posta, jeśli chcesz mieć bezpośredni link do innego postu.

the_permalink jest równa:

echo get_permalink();

Co jest bardzo zbliżone do tego, co faktycznie robi. Jest to implementacja the_permalink:

function the_permalink() {
    echo esc_url( apply_filters( 'the_permalink', get_permalink() ) );
}
Tom J Nowell
źródło
3
Oznacza to, że wszystkie funkcje, takie jak the_ID () i get_ID (), również mają takie same różnice. Przepraszam, ale jestem nowy w wordpress, dlatego pytam
AliasgerSW
@AliasgerSW to jest wzorzec, są pewne wyjątki, ale ogólnie tak jest
Nicolai
@AliasgerSW w razie wątpliwości spójrz na kod. QueryPosts to świetna strona do wyszukiwania kodu źródłowego funkcji WordPress.
shea
@ AliasgerSW jest wykonany przez nasz własny @Rarst
shea
@shea QueryPosts jest wycofany. : - (\
Jestem najbardziej głupią osobą
3

Jeśli spojrzysz na kodeks WordPress na tej stronie, zobaczysz, że get_permalink()można go używać poza pętlą. the_permalink()jest przeznaczony do użycia w pętli. To najłatwiejszy sposób na to spojrzeć.

Matt Royal
źródło
może to być łatwy sposób, aby na to spojrzeć, ale
niezupełnie
Na pewno odpowiedź @Tom J Nowell ♦ jest znacznie bardziej zwięzła. Znacznie lepiej i dobrze wyjaśnione :-)
Matt Royal
-1

the_permalink()jest używany w pętlach postów, takich jak the_title(). Przeczytaj więcej o pętlach w The Loop .

get_permalink()może być używany w pętlach lub poza nimi. W pętlach funkcja zwraca (nie echo) bieżący bezpośredni link do postu. Ale poza pętlami wymaga identyfikatora postu.

Na przykład:

echo get_permalink( 1 );

Spowoduje to wyświetlenie bezpośredniego linku do bieżącej strony:

echo get_permalink();
Ehsaan
źródło
1
w rzeczywistości nie wymaga identyfikatora poza pętlą
Nicolai