2010-11-08 37 views
28

我正在創建我的第一個插件並具有控制輸出的單個函數。根據是否從WordPress管理員與前端查看它,此功能具有不同的輸出。有什麼方法可以輕鬆測試我的功能是否從管理員和前端觸發?如何檢查當前是否在WordPress的管理?

我試圖有條件地檢查查詢字符串與我的插件「頁面」名稱的名稱,但它似乎失敗了一些服務器/安裝。

謝謝

回答

53

呃,這太明顯了。出於某種原因,我認爲這與管理員用戶有關。 if(is_admin()) { ...output my admin stuff....}

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

+0

您可以將自己的答案標記爲已接受。 :) – GmonC 2010-11-09 03:16:11

+0

我需要相同的。我也是一樣的。 – 2012-02-27 06:29:54

+1

警告警告威爾羅賓遜:這段代碼檢查你是否在管理區域,而不是你是否以管理員身份登錄! – 2013-03-21 08:45:58

19

如果你想知道當前用戶是否是ADMIN,那麼你應該這樣做:

$is_admin = current_user_can('manage_options'); 

我被上面的回答誤導,所以稍微注意一下,以防止他人犯同樣的錯誤。

+0

是的,我認爲這似乎是正確的,即使WordPress的支持下降。 – 2013-04-15 09:11:15

+2

如果您不與當前用戶一起工作,您可以使用user_can(1,'manage_options'),並將「1」作爲用戶標識。再次,就像「current_user_can()」一樣,這與檢查用戶是否正在查看和管理頁面無關。 – 2013-09-25 15:21:51

-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

我認爲current_user_can()可能是一種更有效的方法,可能不是明智的檢查WordPress全局變量。 – 2013-03-21 10:16:15

+2

正確Brian。我們絕不應該假定用戶ID是某個用戶從不介意的管理員。 – 2013-09-25 15:12:29

11

請注意,is_admin()只適用於後端。對於在公共網站上顯示的插件的任何部分,您需要使用current_user_can()

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

您可以添加一個current_user_can('管理員')的參考嗎? '管理員'沒有在https://codex.wordpress.org/Function_Reference/current_user_can上列出 – 2015-04-19 01:30:18

相關問題