問題描述
好的,我正在尋找最好的方式來攻擊這個。
我非常喜歡 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。