2015-02-24 91 views
0

我有4個不同的用戶角色在我的Wordpress站點+額外的管理員角色。如果/其他語句 - 不適用於管理員角色 - wordpress

我有一個<div>,我只想顯示爲「經理」用戶角色。

下面的代碼應該只是針對「經理」用戶角色。因此,如果用戶具有「經理」用戶角色,他們將在<p>塊中看到通知:這是一項高級功能。您必須具有高級功能才能上傳橫幅

其他 如果用戶「不是」「經理」,他們將可以選擇上傳橫幅。

我有這樣的代碼來代替:

<? 
if(current_user_can('manager')) { ?>  
    <div class="button-area"> 
     <i class="fa fa-cloud-upload"></i> 
     <p class="banner-help-block-heading">UPLOAD BANNER</p> 
     <p class="banner-help-block">This is a premium feature. You must have premium capabilities to upload your banner</p> 
     <div class="upgrade-button"> 
      <a href="#" class="button-green-upgrade">Upgrade Account</a> 
     </div> 
    </div><? 
     $manager = true; 
    } 
else { ?> 
    <div class="button-area<?php echo ($banner)? ' elect-hide':''; ?>"> 
     <i class="fa fa-cloud-upload"></i> 
     <a href="#" class="elect-banner-drag elect-btn elect-btn-info"><?php _e('Upload banner', 'elect'); ?></a> 
     <p class="help-block"><?php _e('Upload a banner for your profile. Banner size is (825x300) pixel.', 'elect'); ?></p> 
    </div><?php 
    $manager = false; 
    } ?> 

      </div> 

它爲所有用戶角色包括「經理」的偉大工程,但如果我看到的頁面爲「管理員」,我看什麼「經理」應看到。我看到了高級功能聲明。但相反,我應該可以上傳橫幅。

所以我做錯了什麼?

+0

我沒有看到'在http manager'參數:/ /codex.wordpress.org/Function_Reference/current_user_can – Stickers 2015-02-24 15:05:10

+0

這是一個用戶角色,它可以是任何東西..它可能是「音樂人」 – Tester 2015-02-24 15:07:39

+0

「WordPress有六個預定義的角色:超級管理員,管理員,編輯,作者,貢獻者和訂閱者「http://codex.wordpress.org/Roles_and_Capabilities我錯過了什麼,或者您正在使用一些自定義角色? – Stickers 2015-02-24 15:13:41

回答

0

如果要檢查當前登錄用戶的用戶角色,則必須檢查current_user對象上的角色。

$user_roles = $current_user->roles; // Array 

但是最好檢查用戶的能力。

如果你仍然想檢查用戶的角色,這裏是我寫的一個功能,...也許它可以幫助你

function mi_checkUserRole($role, $userid = null) { 
    $user = null; 
    if (!empty($userid)) { 
     $user = new WP_User($userid); 
    } else { 
     global $current_user; 
     get_currentuserinfo(); 
     $user = $current_user; 
    } 
    if (!empty($user)) { 
     return in_array($role, $user->roles); 
    } 
    return false; 
} 

// Example: 
$isManager = mi_checkUserRole("manager"); 
+0

好的,這聽起來很有趣,它會在我的代碼中看起來如何? – Tester 2015-02-24 17:29:44

+0

將函數添加到您的主題的functions.php中。然後你可以通過調用該函數來檢查用戶角色(如下面的示例代碼所示)。 – Jan 2015-02-24 17:50:14