Diferencia entre la función the_permalink () y get_permalink ()

9

En WordPress estoy usando ambas the_permalink()y get_permalink()funciones, pero no puedo obtener ninguna diferencia en la salida de ambas funciones. ¿Cuál es la diferencia entre ambas funciones?

AliasgerSW
fuente

Respuestas:

16

the_permalink Echos el enlace permanente de la publicación actual a la interfaz.

get_permalinksin embargo, lo devuelve como una variable, pero no lo repite. También puede pasarle una ID de publicación si desea el enlace permanente de otra publicación.

the_permalink es equivalente a:

echo get_permalink();

Lo cual está muy cerca de lo que realmente hace. Esta es la implementación de the_permalink:

function the_permalink() {
    echo esc_url( apply_filters( 'the_permalink', get_permalink() ) );
}
Tom J Nowell
fuente
3
Significa que todas las funciones como the_ID () y get_ID () también tienen las mismas diferencias. Lo siento, pero soy nuevo en WordPress, es por eso que pregunto
AliasgerSW
@AliasgerSW ese es el patrón, hay algunas excepciones, pero en general es así
Nicolai
@AliasgerSW cuando tenga dudas, mire el código. QueryPosts es un gran sitio para buscar el código fuente de las funciones de WordPress.
shea
@ AliasgerSW está hecho por nuestro propio @Rarst
shea
@shea QueryPosts está retirado. : - (\
Soy la persona más estúpida
3

Si observa el Codex de WordPress en esto, verá que get_permalink()está ahí para usar fuera del ciclo. the_permalink()es para usar dentro del bucle. Esa es la forma más fácil de verlo.

Matt Royal
fuente
podría ser la manera fácil de verlo, pero no muy completa
Nicolai
Por supuesto, la respuesta de @Tom J Nowell ♦ es mucho más concisa. Mucho mejor y bien explicado :-)
Matt Royal
-1

the_permalink()se usa en bucles de publicaciones, como the_title(). Lea más sobre loops en The Loop .

get_permalink()se puede usar en bucles o fuera de los bucles. En los bucles, la función devuelve (no echo) el enlace permanente posterior actual. Pero fuera de los bucles, requiere una identificación de publicación.

Por ejemplo:

echo get_permalink( 1 );

Esto mostrará el enlace permanente de la página actual:

echo get_permalink();
Ehsaan
fuente
1
en realidad no requiere una identificación fuera del circuito
Nicolai