香蕉视频app下载链接WordPress默認5個用戶角色,分別為:訂閱者、貢獻者、作者、編輯和管理員,每個角色擁有不同的后臺控制權,我們可以自由添加新的角色或為已有角色分配不同的權限。

用戶角色權限

香蕉视频app下载链接可以打印全局變量 $wp_roles 來查看所有用戶的權限和等級。

subscriber(訂閱者)

等級:level_0

權限:

  • read:閱讀

contributor(貢獻者)

等級:level_1

權限:

  • edit_posts:添加文章;
  • delete_posts:刪除自己的文章。

香蕉视频app下载链接貢獻者提交的文章需要編輯或管理員審核,審核發布后的文章不再有權限編輯。

author(作者)

等級:level_2

權限:

  • upload_files:上傳文件;
  • edit_published_posts:編輯自己已發布的文章;
  • publish_posts:發布自己的文章;
  • delete_published_posts:刪除自己已發布的文章。

editor(編輯)

等級:level_7

權限:

  • moderate_comments:審核評論;
  • manage_categories:管理分類;
  • manage_links:管理友情鏈接;
  • unfiltered_html:文章、評論允許發布帶有HTML標記的內容;
  • edit_pages:編輯頁面;
  • edit_others_pages:編輯其他用戶添加的頁面;
  • edit_published_pages:編輯已發布的頁面;
  • publish_pages:編輯頁面的發布狀態;
  • delete_pages:刪除頁面;
  • delete_others_pages:刪除其他用戶添加的頁面;
  • delete_published_pages:刪除已發布的頁面;
  • delete_private_pages:刪除私密頁面;
  • edit_private_pages:編輯私密頁面;
  • read_private_pages:查看私密頁面。
  • edit_others_posts:編輯其他用戶的文章;
  • delete_others_posts:刪除其他用戶的文章;
  • delete_private_posts:刪除私密文章;
  • edit_private_posts:編輯私密文章;
  • read_private_posts:閱讀私密文章。

administrator(管理員)

香蕉视频app下载链接等級:level_10

權限:

  • update_themes:上傳主題;
  • install_themes:安裝主題;
  • switch_themes:切換主題;
  • edit_themes:編輯主題;
  • edit_theme_options:編輯主題選項;
  • delete_themes:刪除主題;
  • update_plugins:上傳插件;
  • delete_plugins:刪除插件;
  • install_plugins:安裝插件;
  • activate_plugins:激活插件;
  • edit_plugins:編輯插件;
  • list_users:查看用戶列表;
  • create_users:添加用戶;
  • edit_users:編輯用戶;
  • promote_users:用戶角色權限管理;
  • remove_users:移除用戶;
  • delete_users:刪除用戶;
  • unfiltered_upload:未過濾的上傳;
  • edit_files:編輯文件;
  • manage_options:管理設置選項;
  • edit_dashboard:儀表盤管理;
  • update_core:更新主程序;
  • import:工具中的導入功能;
  • export:導出。

高級別的用戶擁有低級別用戶的所有權限。

權限簡要概括

  • 訂閱者:可以編輯個人資料,查看文章。
  • 貢獻者:添加文章和刪除待審核中的文章,相當于投稿。
  • 作者:上傳文件,添加、編輯和刪除自己的文章(無論是否已審核),相當于專欄作者。
  • 編輯:擁有所有文章、頁面和評論的管理權限。
  • 管理員:擁有所有后臺權限。

添加新的用戶角色及權限

香蕉视频app下载链接在WordPress的二次開發中,常常需要添加新的用戶角色權限:

add_role('manager', '經理', array(
	'read' => true,
	'level_0' => true,
));

香蕉视频app下载链接以上示例添加了一個名稱為經理的角色,僅擁有訂閱者權限。

香蕉视频app下载链接當然,我們可以給新增的角色或已存在的角色添加權限:

$wp_roles->add_cap('manager', 'edit_posts');

香蕉视频app下载链接以上示例給“經理”添加了編輯文章的權限,注意在函數中使用時,需要先引入全局變量$wp_roles:

global $wp_roles;

香蕉视频app下载链接在二次開發中可能需要自定義一些權限,例如我之前的中就用到了自定義權限:

$wp_roles->add_cap('manager', 'delete_transactions');

然后在對應功能頁面判斷當前用戶是否具有該權限:

current_user_can('delete_transactions')

香蕉视频app下载链接還可以使用下面的方式判斷是否為某個角色:

current_user_can('manager');

刪除用戶角色及權限

用戶權限的設置保存在wp_options表的wp_user_roles字段,添加/編輯/刪除用戶權限其實就是修改這個字段的值。

下面是刪除訂閱者權限的示例代碼:

remove_role('subscriber');

注意:無論何種情況下,不要刪除管理員權限。一般來說,我們都不應該刪除WordPress默認的角色,如果不小心刪除了,可以在本地新安裝一個WordPress,然后將wp_user_roles字段的值拷貝過來就可以了。