Dacă administratorul este autentificat

2 aug. 2013, 19:46:29
Vizualizări: 43K
Voturi: 12

Știm că is_admin() verifică dacă URL-ul curent aparține DASHBOARD-ului (DAR nu verifică dacă utilizatorul este ADMIN).

Așadar, folosesc această funcție pentru a detecta dacă administratorul este autentificat în WordPress:

function is_admin_user(){
  require_once(ABSPATH.'wp-includes/pluggable.php'); return current_user_can('create_users'); //sau 'manage_options'
}

totuși, aceasta nu este soluția ideală. Există vreo funcție încorporată, precum wp_is_administrator()?

2
Comentarii

if(current_user_can('administrator'))

Howdy_McGee Howdy_McGee
2 aug. 2013 20:06:25

Ceea ce sugerează codul tău este că folosești un fel de bootstrap pentru a încărca funcțiile WP în afara WP, dar chiar și în acest caz poți folosi ceea ce spune Howdy_McGee -> vezi documentația

JMau JMau
2 aug. 2013 20:19:45
Toate răspunsurile la întrebare 2
0
25

current_user_can va accepta un nume de rol, dar, din păcate, comportamentul cu rolurile nu este complet consistent.

Următorul cod ar trebui să funcționeze și este mai simplu decât ceea ce ai, chiar dacă doar puțin.

$current_user = wp_get_current_user();
if (user_can( $current_user, 'administrator' )) {
  // utilizatorul este administrator
}
2 aug. 2013 21:41:36
0
10

Se pare că cea mai simplă metodă ar fi de fapt să folosești current_user_can astfel:

if( current_user_can( 'administrator' ) ){} // doar dacă este administrator

Aceasta pare a fi o duplicare.

13 feb. 2019 22:16:37