Errore "Call to undefined function get_current_screen()" in locale - Soluzioni

27 mag 2014, 05:33:35
Visualizzazioni: 14.5K
Voti: 5

Sto utilizzando WordPress 3.9.1 e ottengo l'errore:

Errore fatale: Chiamata a funzione indefinita get_current_screen()

se inserisco il seguente codice nel mio functions.php o in qualsiasi file del tema:

$screen = get_current_screen();
echo $screen;

Inizialmente ho riscontrato l'errore mentre lavoravo a un tema che sto creando. Tuttavia, ho provato con altri temi tra cui TwentyFourteen e ho ricevuto lo stesso errore. Ho anche cancellato il mio database WordPress, creato uno nuovo e reinstallato WordPress, ma senza successo.

Ho verificato la funzione get_current_screen() in wp-admin/includes/screen.php ed è presente.

Sto lavorando con XAMPP e non ho plugin attivati essendo un'installazione pulita. Nel mio wp-config.php ho modificato solo le impostazioni MySQL (database, username e password) e la modalità DEBUG.

Qualche suggerimento su come risolvere questo problema?

1
Commenti

Per favore [modifica] più del tuo codice nella domanda così posso vedere cosa stai cercando di ottenere.

s_ha_dum s_ha_dum
27 mag 2014 16:21:06
Tutte le risposte alla domanda 3
1
10

puoi provare quanto segue

if ( !function_exists( 'get_current_screen' ) ) { 
   require_once ABSPATH . '/wp-admin/includes/screen.php'; 
} 
$screen = get_current_screen();
echo $screen;
2 nov 2020 12:59:45
Commenti

Ciò includerebbe la funzione, sì, ma come dice l'altra risposta non restituirà alcun risultato significativo (perché è pensata per essere utilizzata nel sito di amministrazione, e se fossimo nel sito di amministrazione sarebbe già inclusa).

Rup Rup
2 nov 2020 15:42:07
2

get_current_screen() è una funzione per il backend che restituisce dati riguardanti la pagina corrente di amministrazione del backend. Non ha senso utilizzarla nel codice di un tema. L'unico modo in cui potrebbe funzionare (credo ma non ho testato) in functions.php sarebbe se fosse agganciata a un hook del backend successivo a admin_init.

Non spieghi cosa stai cercando di fare con get_current_screen() ma penso che tu la stia semplicemente usando in modo errato.

27 mag 2014 06:14:07
Commenti

Hai ragione, però non so quale hook usare. Secondo il Codex, admin_init non funzionerà. Inoltre, sto cercando di usare questo per verificare se viene visualizzata la pagina di nuovo/modifica di un custom post type, in modo da poter impostare valori predefiniti diversi per i meta box personalizzati che ho creato. Sto usando lo stesso codice per creare meta box per più post type, utilizzando un plugin.

user1981248 user1981248
27 mag 2014 06:59:45

devi racchiuderlo in un controllo is_admin() o eseguirlo su admin_init o un altro hook riservato all'amministrazione

Tom J Nowell Tom J Nowell
14 nov 2023 15:28:49
0

forse il tuo codice viene eseguito prima di admin_init. Aggiungilo all'action:

add_action('admin_init', function(){
  $screen = get_current_screen();
  echo $screen;
});
14 nov 2023 14:29:45