Cum verificăm dacă utilizatorul este în interfața de administrare?

13 mar. 2012, 07:27:36
Vizualizări: 40.4K
Voturi: 22

În aplicația mea, am un formular. Vreau să afișez titlul doar dacă utilizatorul este în frontend (partea publică), dar dacă este în backend (interfața de administrare) nu vreau să îl afișez.

Nu vreau să fac această verificare pe baza rolului utilizatorului.

1
Comentarii

Acest răspuns pare să abordeze întrebarea ta: https://wordpress.stackexchange.com/a/343592/43252

MastaBaba MastaBaba
5 mar. 2023 20:03:00
Toate răspunsurile la întrebare 2
6
36

Folosește is_admin(). Această funcție verifică dacă te afli pe o pagină de Administrare, adică în backend.

13 mar. 2012 07:41:23
Comentarii

va funcționa și pentru alți utilizatori, cum ar fi abonații?

Ajay Patel Ajay Patel
13 mar. 2012 07:42:00

Da. Funcționează pentru toate rolurile.

Rutwick Gangurde Rutwick Gangurde
13 mar. 2012 07:42:42

Cum rămâne cu încărcarea unui script pe o anumită pagină de administrare?

AlxVallejo AlxVallejo
27 dec. 2012 03:01:55

Filtrul de acțiune admin_print_scripts este menit să facă asta.

Rutwick Gangurde Rutwick Gangurde
27 dec. 2012 07:09:48

De remarcat, o cerere ajax va face ca aceasta să returneze TRUE.

De asemenea, chiar în documentație se spune că aceasta nu este menită să fie folosită ca o verificare de securitate.

Rebecca Dessonville Rebecca Dessonville
12 dec. 2017 18:54:45

Acest lucru nu se mai aplică WordPress din momentul Gutenberg. Acum, toate ecranele care folosesc Gutenberg vor returna false atunci când se verifică pentru is_admin. La fel și în Customizer. Și la fel și pentru apelurile AJAX. is_admin este o funcție înșelătoare și abuzată. Nu o poți folosi pentru a verifica în siguranță dacă te afli într-un ecran de administrare. De asemenea, nu o poți folosi pentru a verifica dacă te afli în front-end, deoarece în timpul unui apel AJAX această funcție ar returna true, deoarece funcția face prin definiție Determină dacă cererea curentă este pentru o pagină de interfață administrativă. Asta este adevărat într-un apel ajax.

User User
23 aug. 2021 08:23:07
Arată celelalte 1 comentarii
3
20

Folosește is_admin() pentru a verifica dacă pagina curentă este o pagină de administrare. În ciuda numelui, aceasta nu este o verificare a rolului utilizatorului. Întotdeauna returnează FALSE pe front-end, indiferent de rolul utilizatorului.

13 mar. 2012 07:40:16
Comentarii

Fals de când editorul de blocuri prost făcut a fost băgat pe gât comunității WP: https://core.trac.wordpress.org/ticket/47394 De atunci, nu mai poți determina în siguranță dacă te afli în admin sau pe front end.

User User
3 mar. 2023 10:36:54

@BedaSchmid - Care este alternativa la is_admin?

Motivated Motivated
28 iun. 2023 11:08:19

@Motivated nu există. Acum trebuie să faci o GRĂMADĂ de verificări, cum ar fi dacă e în timpul unui eveniment AJAX, dacă e o anumită pagină, dacă e ceva legat de editarea de blocuri, dacă utilizatorul este autentificat, dacă are anumite drepturi... etc. Nu a fost niciodată diferit în ceea ce privește securitatea deoarece is_admin NU verifică dacă utilizatorul este admin sau nu, dar măcar puteai să-ți dai seama în general dacă era vorba de zona de admin (cu excepția cererilor AJAX, unde întotdeauna este is_admin). Gluma e că editorii de blocuri îți spun is_admin FALSE, pentru că nu rulează "în backend" ci prin REST.

User User
29 iun. 2023 04:30:37