Posteriormente a investigar con especialistas en el tema, programadores de varias ramas y maestros dimos con la solución al problema y la plasmamos en esta publicación.
Solución:
get_permalink()
solo es realmente útil para páginas y publicaciones individuales, y solo funciona dentro del bucle.
La forma más sencilla que he visto es esta:
global $wp;
echo home_url( $wp->request )
$wp->request
incluye la parte de la ruta de la URL, por ejemplo. /path/to/page
y home_url()
genera la URL en Configuración > General, pero puede agregarle una ruta, por lo que estamos agregando la ruta de solicitud a la URL de inicio en este código.
Tenga en cuenta que esto probablemente no funcionará con Permalinks configurados en Plain, y dejará fuera las cadenas de consulta (el ?foo=bar
parte de la URL).
Para obtener la URL cuando los enlaces permanentes están configurados como simples, puede usar $wp->query_vars
en cambio, pasándolo a add_query_arg()
:
global $wp;
echo add_query_arg( $wp->query_vars, home_url() );
Y podría combinar estos dos métodos para obtener la URL actual, incluida la consulta stringindependientemente de la configuración del enlace permanente:
global $wp;
echo add_query_arg( $wp->query_vars, home_url( $wp->request ) );
Puede usar el siguiente código para obtener la URL actual completa en WordPress:
global $wp;
$current_url = home_url(add_query_arg(array(), $wp->request));
Esto mostrará la ruta completa, incluidos los parámetros de consulta.
¿Por qué no simplemente usar?
get_permalink(get_the_ID());
Si te sientes motivado, puedes dejar una división acerca de qué le añadirías a este tutorial.