¿Cómo puedo verificar si la página actual es wp-login.php
o wp-signup.php
?
¿Hay soluciones más elegantes que usar $_SERVER['REQUEST_URI']
?
pages
login
registration
conditional-tags
Pony de un solo truco
fuente
fuente
Respuestas:
Use el global
$pagenow
, que es un conjunto global común de WordPress en tiempo de ejecución:También puede verificar el tipo de página de inicio de sesión, por ejemplo, el registro:
El siguiente código se considera heredado y no se debe usar (
wp-register.php
se desaprobó y posteriormente se eliminó hace bastante tiempo):fuente
LA ÚNICA FORMA FIABLE:
código:
¿Por qué es más seguro?
1) A veces, si intenta verificar la página de inicio de sesión usando
REQUEST_URI
(oSCRIPT_PATH
), obtendrá VALORES INCORRECTOS, porque muchos complementos cambian las URL de INICIAR SESIÓN y ADMINISTRAR .2) ¡también
$pagenow
le dará un valor incorrecto en ese caso!Notas:
fuente
get_included_files()
parece la solución más precisa (al menos para mí).Una forma más moderna de hacerlo, debería funcionar incluso cuando los complementos cambian la URL de inicio de sesión de wp y cuando WP está en una subcarpeta, etc.
fuente
return false !== stripos( wp_login_url(), $_SERVER['SCRIPT_NAME'] );
. Eso me parece un poco más limpio.$GLOBALS['pagenow']
no funciona, usa$_SERVER['PHP_SELF']
.y si su wordpress no está instalado en la carpeta raíz web, debe usar algunos parámetros como
YOUR_WP_PATH/wp-login.php
para reemplazar los elementos en la matriz.fuente
Lo he implementado usando el método wp_login_url () propio de WordPress de la siguiente manera:
Simplemente comparar ambas rutas (porque es difícil estar absolutamente seguro sobre el uso de SSL, ya que puede terminarse) debería ser suficiente ... Sin embargo, significa que un desarrollador de plugins o temas que cambia el formulario de inicio de sesión predeterminado debe haberlo hecho. así que la forma correcta ...
fuente
Solo estoy interesado en la página de registro, no en la página de inicio de sesión. Por lo tanto, esto podría no ser querido por todos.
$ GLOBALS ['pagenow'] me devuelve index.php. Tal vez por buddypress o mi tema.
Entonces solía
Si inspecciona el cuerpo de la página de registro, también tiene el ID, así que si dice page-id-4906 , puede usarlo de esta manera si funciona mejor:
fuente
Ninguna de las respuestas actuales me funcionó.
Lo que hice fue verificar si la
$_GET
matriz tiene una clave de 'página' y si su valor es 'iniciar sesión'.fuente
Algunas soluciones propuestas aquí funcionaron, así que he encontrado algo realmente simple que funciona en un sitio ordinario de WordPress (no probado en Multisite).
Tan simple como:
Tiene en cuenta el parámetro url
?action=register
, que solo existe cuando estás en la página de registro.fuente
Aquí hay una versión PSR-2 de la respuesta @ T.Todua. Acabo de formatearlo bien. Es mejor manipular la función, como agregar un filtro con fines de prueba, etc.
fuente