2010-11-08 28 views
28

Tôi đang tạo plugin đầu tiên và có một chức năng duy nhất để điều khiển đầu ra. Hàm này có đầu ra khác nhau dựa trên việc nó có đang được xem từ bên trong quản trị viên WordPress so với giao diện người dùng hay không. Có cách nào để dễ dàng kiểm tra xem chức năng của tôi có được kích hoạt từ bên trong admin vs giao diện người dùng không?Làm thế nào để kiểm tra xem hiện tại trong Wordpress Admin?

Tôi đã thử điều kiện chuỗi truy vấn theo tên của tên trang "plugin" của tôi nhưng có vẻ như không thành công trên một số máy chủ/cài đặt.

Cảm ơn

Trả lời

53

Duh, điều này quá rõ ràng. Đối với một số lý do tôi đã nghĩ rằng điều này đã làm với một người dùng quản trị. if(is_admin()) { ...output my admin stuff....}

http://codex.wordpress.org/Function_Reference/is_admin

+0

Bạn có thể đánh dấu câu trả lời của riêng mình là được chấp nhận. :) – GmonC

+0

Tôi cần điều tương tự. Tôi rơi cho cùng. –

+1

Cảnh báo cảnh báo Will Robinson: mã này kiểm tra xem bạn có đang ở trong khu vực quản trị hay không, KHÔNG cho biết bạn có đăng nhập với tư cách quản trị viên hay không !! –

19

Nếu bạn muốn biết liệu người dùng hiện LÀ ADMIN, sau đó bạn nên sử dụng này:

$is_admin = current_user_can('manage_options'); 

tôi đã nhầm lẫn do câu trả lời ở trên, do đó, một lưu ý nhỏ để giữ cho người khác mắc sai lầm tương tự.

+0

Có, tôi nghĩ rằng điều này có vẻ là một trong những thích hợp mà ngay cả hỗ trợ Wordpress đặt nó xuống. –

+2

Nếu bạn không làm việc với người dùng hiện tại, bạn có thể sử dụng user_can (1, 'manage_options') với "1" là ID người dùng. Một lần nữa, mặc dù giống như "current_user_can()" điều này không có gì để làm với việc kiểm tra nếu người dùng đang xem và quản trị trang. –

-3
<?php 
global $current_user; 
get_currentuserinfo(); 
$user_id = $current_user->ID 

//usually admin user id is 1 if its not working check admin user id from wp_users table 
if($user_id == 1) { 
    //write your stuff 
} 
?> 
+2

Tôi nghĩ current_user_can() có lẽ là một phương pháp hiệu quả hơn, có lẽ không khôn ngoan để kiểm tra các vars toàn cầu của WordPress. –

+2

Đúng Brian. Chúng ta không bao giờ nên giả sử một ID người dùng là một người dùng nào đó không bao giờ là một quản trị viên. –

11

Lưu ý rằng is_admin() chỉ hoạt động trong chương trình phụ trợ. Đối với bất kỳ phần nào của plugin hiển thị trên trang web công khai, bạn cần sử dụng current_user_can().

if (current_user_can('administrator')) { 
    // your code goes here 
} 
+0

Bạn có thể thêm tham chiếu cho current_user_can ('administrator') không? 'quản trị viên' không được liệt kê trên https://codex.wordpress.org/Function_Reference/current_user_can –

Các vấn đề liên quan