Come verificare se l'utente è nel back-end?
Nella mia applicazione, ho un form. Ora voglio mostrare il titolo se l'utente è nel front-end, ma non voglio mostrarlo se si trova nel back-end.
Non voglio effettuare il controllo basandomi sul ruolo dell'utente.
// Metodo 1: Utilizzando is_admin()
if (!is_admin()) {
// L'utente è nel front-end
echo 'Il titolo';
}
// Metodo 2: Controllando la variabile globale $pagenow
global $pagenow;
if (!isset($pagenow)) {
// L'utente è nel front-end
echo 'Il titolo';
}
// Metodo 3: Controllando DOING_AJAX
if (!defined('DOING_AJAX') && !is_admin()) {
// L'utente è nel front-end e non sta eseguendo una richiesta AJAX
echo 'Il titolo';
}

Usa is_admin()
. Questa funzione verifica se stai visualizzando una pagina di Amministrazione, ovvero il backend.

E per caricare uno script su una specifica pagina di amministrazione?

L'hook di azione admin_print_scripts
è pensato per fare questo.

Da notare, una richiesta ajax farà sì che questo restituisca TRUE.
Inoltre, proprio nella documentazione dice che questo non è pensato per essere usato come controllo di sicurezza.

Questo non si applica più a WordPress da Gutenberg. Ora, tutti gli schermi che usano Gutenberg restituiranno false quando si verifica is_admin. Lo stesso nel Customizer. E anche quando si effettuano chiamate AJAX. is_admin
è una funzione fuorviante e abusata. Non puoi usarla per verificare in sicurezza se sei in una schermata di amministrazione.
Quindi, non puoi nemmeno usarla per verificare se sei nel front end, perché durante una chiamata AJAX questa funzione restituirebbe true, poiché la funzione per definizione Determina se la richiesta corrente è per una pagina dell'interfaccia amministrativa.
Questo è vero in una chiamata ajax.

Utilizza is_admin()
per verificare se la pagina corrente è una pagina di amministrazione. Nonostante il nome, questa non è una verifica del ruolo dell'utente. Restituisce sempre FALSE
sul front end, indipendentemente dal ruolo dell'utente.

Falso da quando il pessimo editor a blocchi è stato imposto alla comunità di WP: https://core.trac.wordpress.org/ticket/47394 Da allora, non puoi più determinare in modo sicuro se ti stai muovendo nell'area di amministrazione o nel front end.

@Motivated non ce n'è. Ora devi fare un SACCO di controlli, come verificare se è durante un evento ajax, se è una specifica schermata, se è una modifica di blocchi, se l'utente è loggato, se l'utente ha i permessi... ecc. Non è mai stato diverso in termini di sicurezza dato che is_admin NON controlla se l'utente è admin o meno, ma almeno permetteva di capire genericamente se era un'area di amministrazione (a meno delle richieste AJAX, dove is_admin è sempre vero). Il paradosso è che gli editor a blocchi ti dicono is_admin FALSE, perché non funzionano "nel backend" ma via REST.
