Wordpress-cómo detectar si la página actual es la página de inicio de sesión


Hay una mejor manera que usar la variable global $pagenow para detectar la página actual si es la página de inicio de sesión, como un is_admin() ?

if ($pagenow != 'wp-login.php' && !is_admin())
{
    // Do something
}

Hay una variable global $current_screen con un getter get_current_screen() (que se declara en /wp-admin/includes/template.php), pero siempre es igual a NULL

On #15686 (Detectar la etiqueta de plantilla de página actual) - WordPress Trac se dice que generalmente se usa $pagenow, pero creo que no es la buena manera de comparar las páginas no dinámicas con el nombre del archivo en lugar de la función page)

Author: mems, 2011-03-11

4 answers

Aunque tiendo a estar de acuerdo con otros en la necesidad de una función is_login_page () o algo similar, encontré lo que parece ser la mejor respuesta en https://wordpress.stackexchange.com/questions/12863/check-if-were-on-the-wp-login-page , que usé para hacer lo siguiente:

<?php
function is_login_page() {
    return in_array($GLOBALS['pagenow'], array('wp-login.php', 'wp-register.php'));
}
 48
Author: Amereservant,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-13 12:37:28

Si eres como yo, y realmente intentaste des-registrar / meterte con el jQuery que WordPress carga automáticamente, entonces la respuesta correcta es:

No utilice wp_print_styles para registrar sus scripts-use wp_enqueue_scripts ¡en su lugar!

Este hook se ejecutará solo en el frontend, no en la página de inicio de sesión, por lo que no hay necesidad de soluciones.

Nacin lo está explicando aqui: http://make.wordpress.org/core/2011/12/12/use-wp_enqueue_scripts-not-wp_print_styles-to-enqueue-scripts-and-styles-for-the-frontend/

 5
Author: Manu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-11 11:49:52

¿No puedes explicar qué vas a hacer con él? Así que puedo decir si debería codificar usando ganchos de Wordpress.

O puede usar el uri absoluto, simplemente emparejarlo con wp-login.php

<?php
$uri = $_SERVER['REQUEST_URI'];

echo $uri;

?>

 0
Author: fedmich,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-11 02:23:18

En caso de que desee ser lo más independiente posible de WP; por ejemplo, en un plugin que mantenga los cambios futuros fuera de alcance. Puedes usar algo como esto:

function is_login_page() {
    return !strncmp($_SERVER['REQUEST_URI'], '/wp-login.php', strlen('/wp-login.php'));
}
 0
Author: dRoneBrain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-20 17:23:20