問題描述
好的,我正在尋找最好的方式來攻擊這個。
我非常喜歡 PHP,並在 WordPress 中自定義後綴類型與自定義元字段。
這是我在做什麼:
-
用户註冊,默認設置在用户端。
-
管理員的用户請求具有自定義帖子類型的權限。
-
管理員將用户分配給另一個權限名稱,如”Shop Owner” 。
-
用户現在可以看到自定義帖子類型,並可以輸入此帖子類型。
-
用户只能查看和編輯自己的帖子。
我需要以下幫助:
-
如何創建一個名為”Shop Owner” 的新型”Role”,
-
如何給予所述角色的正確權限,只能查看並訪問自定義帖子類型。
-
只允許用户查看和編輯自己的帖子到此自定義帖子類型。
理想情況下,我更喜歡這一切都是從 wp-admin 完成的,但我猜測我可能需要為此建立一個前端,以獲得有限的控制權。
任何輸入都非常感激。
親切的問候
最佳解決方案
使用 Justin Tadlock 的插件 「Members」 。它使您能夠創建新角色並編輯現有角色,以及添加自定義功能。所有你需要做的工作,可以點擊幾下。
我知道你在你對 ZaMoose 的回答中所説的話是在你自己寫這個功能,所以我完全可以控制一切。這就是缺少開源軟件的全部內容。 Justin Tadlock 發佈了他的插件,所以你可以精確地使用它,所以你可以完全控制一切。
如果你真的想要重塑輪胎,可能會浪費你自己的時間幾百小時,我無法阻止你,但你至少可以節省自己的麻煩,並使用 Tadlock 的插件來學習如何做你想要的。
一旦你有一個你想要的插件,你需要更改'map_meta_cap'標誌到 true 和'capability_type'標誌在你的帖子類型的註冊功能,以便它説的東西不是’post’,’page’ 或任何其他’reserved’ 類型。然後,使用您的能力類型而不是帖子複製與帖子相關的所有功能 (例如 edit_posts,edit_others_posts,publish_posts 等) 。確保將所有這些權限分配給管理員 (在執行此操作之前,您將無法看到帖子類型),然後創建角色,模仿’contributor’ 角色的職位類型。
例如,説你的能力類型是 foobars,你想要給’shop owners’ edit_foobars,delete_foobars 和 read 功能。這樣他們可以創建自己的草稿,並刪除這些草稿,但是由於它們沒有 publish_foobars 功能,所以他們必須提交它們以供批准。因為它們沒有 edit_published_foobars,所以對批准的 foobar 的所有修改都必須被批准。
次佳解決方案
註冊表的類型有一個名為”capabilities” 的參數,所以你可以有例如
'capability' => __('organize_shop'),
http://codex.wordpress.org/Function_Reference/register_post_type
要創建新的用户/角色/功能,您可以使用 add_role(add_cap) 作為一個簡單的例子來開始使用:
add_role( 'shop_owner', 'Shop Owner', array( 'edit_posts' => true, ) );
$wp_roles->add_cap( 'Shop Owner', 'organize_shop' );
$role->add_cap( 'organize_shop' );
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。