Apel la funcția nedefinită get_current_screen() pe localhost

27 mai 2014, 05:33:35
Vizualizări: 14.5K
Voturi: 5

Folosesc WordPress 3.9.1 și primesc eroarea:

Eroare fatală: Apel la funcția nedefinită get_current_screen()

dacă pun următoarele în functions.php sau în orice fișier al temei mele:

$screen = get_current_screen();
echo $screen;

Inițial când am primit eroarea, lucram la o temă pe care o creez. Am încercat și cu alte teme precum TwentyFourteen, dar tot primesc aceeași eroare. Am șters baza de date WordPress, am creat una nouă și am reinstalat WordPress, dar nu a ajutat.

Am verificat funcția get_current_screen() mergând în wp-admin/includes/screen.php și funcția este acolo.

Lucrez pe XAMPP și nu am niciun plugin activat pentru că este o instalare proaspătă. În wp-config.php nu am schimbat decât setările MySQL (bază de date, utilizator și parolă) și modul DEBUG.

Aveți sugestii pentru a remedia această problemă?

1
Comentarii

Te rog [editează] mai mult din codul tău în întrebare, ca să văd ce încerci să realizezi.

s_ha_dum s_ha_dum
27 mai 2014 16:21:06
Toate răspunsurile la întrebare 3
1
10

poți încerca următoarele

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
Comentarii

Asta ar include funcția, da, dar cum spune și celălalt răspuns, nu va returna niciun rezultat semnificativ (pentru că este destinată să fie utilizată în admin site, iar dacă am fi în admin site, atunci ar fi deja inclusă).

Rup Rup
2 nov. 2020 15:42:07
2

get_current_screen() este o funcție pentru backend și returnează date despre pagina curentă de administrare backend. Nu are sens să folosești această funcție în codul temei. Singurul mod în care ar putea funcționa (cred, dar nu am testat) în functions.php ar fi dacă ar fi conectată la un hook de backend mai târziu decât admin_init.

Nu explici ce încerci să realizezi cu get_current_screen(), dar cred că pur și simplu o folosești incorect.

27 mai 2014 06:14:07
Comentarii

Ai dreptate, dar nu știu ce hook să folosesc. Conform Codex, admin_init nu va funcționa. De asemenea, încerc să folosesc asta pentru a verifica dacă se vizualizează pagina de adăugare/editare a unui custom post type, astfel încât să pot seta valori implicite diferite pentru custom meta boxes pe care le-am creat. Folosesc același cod pentru a crea meta boxes pentru multiple post types, folosind un plugin.

user1981248 user1981248
27 mai 2014 06:59:45

trebuie să-l înfășori într-un check is_admin() sau să-l rulezi pe admin_init sau pe un alt hook disponibil doar în admin

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

poate codul tău rulează înainte de admin_init. Adaugă-l la acțiune:

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