Diferença entre as funções the_permalink () e get_permalink ()

9

Em WordPress Eu estou usando ambos the_permalink()e get_permalink()funções, mas não posso obter qualquer diferença na saída de ambas as funções. Qual é a diferença entre as duas funções?

AliasgerSW
fonte

Respostas:

16

the_permalink faz eco do link permanente da postagem atual para o frontend.

get_permalinkno entanto, retorna-o como uma variável, mas não faz eco. Você também pode passar um ID da postagem para o link permanente de outra postagem.

the_permalink é equivalente a:

echo get_permalink();

O que é muito próximo do que realmente faz. Esta é a implementação de the_permalink:

function the_permalink() {
    echo esc_url( apply_filters( 'the_permalink', get_permalink() ) );
}
Tom J Nowell
fonte
3
Isso significa que todas as funções como the_ID () e get_ID () também têm as mesmas diferenças como esta. Desculpe, mas eu sou novo para wordpress é por isso que pedir
AliasgerSW
@AliasgerSW esse é o padrão, existem algumas exceções, mas geralmente é assim #
Nicolai
@AliasgerSW em caso de dúvida, veja o código. QueryPosts é um ótimo site para procurar o código fonte das funções do WordPress.
shea
@ AliasgerSW é feito por nossos próprios @Rarst
shea
@shea QueryPosts foi aposentado. : - (\
Eu sou a pessoa mais estúpida
3

Se você olhar o Codex do WordPress , verá que ele get_permalink()existe para uso fora do loop. the_permalink()é para uso dentro do loop. Essa é a maneira mais fácil de ver.

Matt Royal
fonte
pode ser a maneira mais fácil de olhar para ele, mas não um muito completo
Nicolai
Com certeza, a resposta do Tom J Nowell ♦ é muito mais concisa. Muito melhor e bem explicado :-)
Matt Real
-1

the_permalink()é usado em loops de posts, como the_title(). Leia mais sobre loops no The Loop .

get_permalink()pode ser usado em loops ou fora dos loops. Nos loops, a função retorna (não faz eco) o link permanente de postagem atual. Mas loops externos, requer um ID da postagem.

Por exemplo:

echo get_permalink( 1 );

Isso exibirá o link permanente da página atual:

echo get_permalink();
Ehsaan
fonte
11
na verdade, ele não requer um ID fora do laço
Nicolai