WordPress – como detectar se a página atual é a página de login

Existe uma maneira melhor do que usar a variável global $pagenow para detectar a página atual se for a página de login, como is_admin() ?

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

Há uma variável global $current_screen com um get_current_screen() (que declarou em /wp-admin/includes/template.php ), mas é sempre igual a NULL

Em # 15686 (Detectar a tag do modelo de página atual) – WordPress Trac é dito que geralmente é usado $pagenow , mas acho que não é a boa maneira de comparar páginas não dinâmicas contra o nome do arquivo em vez de funcionar (como a página de administração)

Enquanto eu tento concordar com os outros sobre a necessidade de uma function is_login_page () ou algo parecido, encontrei o que parece ser a melhor resposta em https://wordpress.stackexchange.com/questions/12863/check-if-were- on-the-wp-login-page , que eu costumava fazer o seguinte:

 < ?php function is_login_page() { return in_array($GLOBALS['pagenow'], array('wp-login.php', 'wp-register.php')); } 

Se você é como eu e, na verdade, tentou se deserrar / mexer com o jQuery que o WordPress carrega automaticamente, então a resposta correta é:

Não use wp_print_styles para registrar seus scripts – use wp_enqueue_scripts em seu lugar!

Este gancho será executado apenas no frontend, não na página de login, portanto, não há necessidade de soluções alternativas.

Nacin está explicando isso 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/

Você não pode explicar o que você vai fazer com isso? Então eu posso dizer se você deve codificar usando ganchos wordpress.

ou você pode usar o uri absoluto, basta combiná-lo com wp-login.php

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

?>

Caso você queira ser o não WP o mais independente possível; por exemplo, em um plugin, mantendo futuras mudanças fora do escopo. Você pode usar algo como isto:

 function is_login_page() { return !strncmp($_SERVER['REQUEST_URI'], '/wp-login.php', strlen('/wp-login.php')); }