Diferencia entre las funciones the_permalink() y get_permalink()

27 jun 2014, 14:36:33
Vistas: 39.5K
Votos: 15

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?

0
Todas las respuestas a la pregunta 3
5
23

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() ) );
}
27 jun 2014 14:48:33
Comentarios

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 AliasgerSW
27 jun 2014 14:52:44

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

Nicolai Grossherr Nicolai Grossherr
27 jun 2014 15:07:11

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

shea shea
4 jul 2014 01:22:25

@ AliasgerSW está hecho por nuestro propio @Rarst

shea shea
4 jul 2014 09:05:04

@shea QueryPosts está retirado. :-(\

I am the Most Stupid Person I am the Most Stupid Person
8 ago 2019 15:32:16
2

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.

27 jun 2014 14:51:40
Comentarios

podría ser la forma fácil de verlo, pero no es muy completa

Nicolai Grossherr Nicolai Grossherr
27 jun 2014 15:05:20

Sin duda, la respuesta de @Tom J Nowell♦ es mucho más concisa. Mucho mejor y bien explicada :-)

Matt Royal Matt Royal
27 jun 2014 16:29:47
1
-1

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();
27 jun 2014 14:59:41
Comentarios

en realidad no requiere un ID fuera del bucle

Nicolai Grossherr Nicolai Grossherr
27 jun 2014 15:04:43