Quiero agregar un código PHP personalizado para garantizar que cada vez que una página de mi sitio se cargue en mi navegador, la URL de esa página se repita en la pantalla. Puedo usar echo get_permalink()
, pero eso no funciona en todas las páginas. Algunas páginas (por ejemplo, mi página de inicio ) muestran varias publicaciones, y si las uso get_permalink()
en estas páginas, la URL de la página mostrada no se devuelve (creo que devuelve la URL de la última publicación en el bucle). Para estas páginas, ¿cómo puedo devolver la URL?
¿Puedo conectarme get_permalink()
a un gancho particular que se dispara antes de que se ejecute el bucle? ¿O puedo salir del bucle de alguna manera, o restablecerlo una vez que esté completo?
Gracias.
php
loop
permalinks
urls
cag8f
fuente
fuente
is_home()
ois_page( 'fr' )
etc. y solo poner en cola el script si es verdad?if ( home_url( $wp->request ) == home_url() ) { wp_enqueue_script();}
Esto parece dispararse en cada página de inicio, independientemente del idioma. ¿Es eso lo que estabas sugiriendo?$_SERVER['REQUEST_URI']
y compañía? Vea esta pregunta: stackoverflow.com/q/6768793/247696Respuestas:
get_permalink()
solo es realmente útil para páginas individuales y publicaciones, y solo funciona dentro del bucle.La forma más simple que he visto es esta:
$wp->request
incluye la parte de la ruta de la URL, por ejemplo./path/to/page
yhome_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 los enlaces permanentes establecidos en Normal y dejará fuera las cadenas de consulta (la
?foo=bar
parte de la URL).Para obtener la URL cuando los enlaces permanentes se configuran como simples, puede usarlos
$wp->query_vars
pasándolos aadd_query_arg()
:Y podría combinar estos dos métodos para obtener la URL actual, incluida la cadena de consulta, independientemente de la configuración del enlace permanente:
fuente
echo '//' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
.echo home_url( $wp->request )
. Me he asegurado de incluirglobal $wp
también. Los enlaces permanentes no son 'Normal', sino que se configuran como 'Nombre de publicación'. Tampoco veo ningún error PHP relevante en el registro. Esta página en particular es parte de mi sitio de desarrollo, que de lo contrario está bloqueado para los visitantes. No estoy seguro de si eso importa o no. editar: En realidad, mantenga ese pensamiento, podría ser un error del usuario. Stand by ...trailingslashit()
embargo, puede agregarlos , según sus necesidades.Puede usar el siguiente código para obtener la URL actual completa en WordPress:
Esto mostrará la ruta completa, incluidos los parámetros de consulta.
fuente
array()
por$_GET
. es decir:home_url(add_query_arg($_GET,$wp->request));
fuente
El siguiente código le dará la URL actual:
Puede usar el siguiente código para obtener la URL completa junto con los parámetros de consulta.
Esto mostrará la ruta completa, incluidos los parámetros de consulta. Esto preservará los parámetros de consulta si ya están en la URL.
fuente
wp-admin/plugins.php
en mi URL actual, es solo la ruta raíz y las cadenas de consulta.Esta es una forma mejorada de ejemplo que mencionamos anteriormente. Funciona cuando las URL bonitas están habilitadas, sin embargo, se descarta si hay algún parámetro de consulta como / page-slug /? Param = 1 o la URL es fea en absoluto.
El siguiente ejemplo funcionará en ambos casos.
fuente
Tal vez
wp_guess_url()
es lo que necesitas. Disponible desde la versión 2.6.0.fuente
home_url()
.¿Por qué no solo usar?
fuente