nếu quản trị viên đăng nhập


9

Chúng tôi biết rằng is_admin()kiểm tra xem URL hiện tại có thuộc về DASHBOARD hay không ( NHƯNG nó không kiểm tra xem người dùng có phải là ADMIN không ).

Vì vậy, tôi sử dụng chức năng này để phát hiện nếu quản trị viên đăng nhập vào wordpress:

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

Tuy nhiên, đó không phải là giải pháp lý tưởng. Có tồn tại bất kỳ chức năng tích hợp, như thế wp_is_administrator()nào?


3
if(current_user_can('administrator'))
Howdy_McGee

1
Những gì mã của bạn gợi ý là bạn sử dụng một số bootstrap để gọi các hàm WP bên ngoài WP nhưng ngay cả trong trường hợp này bạn cũng có thể sử dụng những gì Howdy_McGee nói -> xem thông tin
JMau

Câu trả lời:


22

current_user_cansẽ chấp nhận một tên vai trò, nhưng thật đáng buồn, hành vi với vai trò không hoàn toàn phù hợp .

Những điều sau đây nên hoạt động và đơn giản hơn những gì bạn có, một chút.

$current_user = wp_get_current_user();
if (user_can( $current_user, 'administrator' )) {
  // user is an admin
}

5

Trên thực tế, có vẻ như cách đơn giản nhất là sử dụng current_user_can như sau:

if( current_user_can( 'administrator' ) ){} // only if administrator

Điều này có vẻ như là một bản sao .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.