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

the_permalink
muestra el enlace permanente (permalink) de la entrada actual en el frontend.
get_permalink
en cambio lo devuelve como una variable, pero no lo muestra directamente. También puedes pasarle un ID de entrada si necesitas el enlace permanente de otra entrada.
the_permalink
es equivalente a:
echo get_permalink();
Lo cual es muy similar a lo que realmente hace. Esta es la implementación de the_permalink
:
function the_permalink() {
echo esc_url( apply_filters( 'the_permalink', get_permalink() ) );
}

Significa que todas las funciones como the_ID() y get_ID() también tienen las mismas diferencias como esta. Lo siento, pero soy nuevo en WordPress, por eso pregunto

@AliasgerSW ese es el patrón, hay algunas excepciones, pero generalmente es así

@AliasgerSW cuando tengas dudas, revisa el código. QueryPosts es un excelente sitio para buscar el código fuente de las funciones de WordPress.

Si miras el WordPress Codex sobre esto, verás que get_permalink()
está disponible para usar fuera del bucle. the_permalink()
es para usar dentro del bucle. Esa es la forma más sencilla de verlo.

the_permalink()
se utiliza en los bucles de publicaciones, como the_title()
. Más información sobre bucles en El Bucle.
get_permalink()
puede usarse dentro o fuera de los bucles. Dentro de los bucles, la función devuelve (no imprime) el enlace permanente de la publicación actual. Pero fuera de los bucles, requiere un ID de publicación.
Por ejemplo:
echo get_permalink( 1 );
Esto mostrará el enlace permanente de la página actual:
echo get_permalink();
