問題描述
是否有一個外掛可以限制 non-admin 使用者只有現有的標籤?我可以為此使用類別,但是很難顯示大量 (〜 1000) 的標籤。
最佳解決方案
如果您還沒有建立標籤,可以使用 「批次新增標籤」 外掛 – http://wordpress.org/extend/plugins/bulk-add-tags/
然後限制除管理員之外的所有使用者透過”New Post” 螢幕新增新標籤,將此程式碼新增到您的主題的 functions.php 檔案中:
//Hide Post Page Options from all except Administrator
if (!current_user_can('administrator')){
function hide_post_page_options() {
global $post;
$hide_post_options = "<style type="text/css"> .jaxtag { display: none; }</style>";
print($hide_post_options);
}
add_action( 'admin_head', 'hide_post_page_options' );
}
這將只是隱藏從管理員以外的所有使用者輸入新標籤的框。
我實際上使用這種方法來隱藏”New Post” 頁面的許多區域。只需在 { display: none; }之前找到並新增元素的 div 類或 ID,並用逗號分隔。如果您不熟悉,可以使用 Firebug 外掛與 Firefox 或簡單的 right-click,並在 Chrome 中選擇”Inspect Element” 。
我喜歡這種方法在許多外掛,因為它不會完全從 Wordpress 中刪除功能,功能只是隱藏的使用者不需要它。
次佳解決方案
這些解決方案都沒有完全符合我需要允許 non-admin 使用者使用現有標籤的一個帖子,但不會建立新的標籤。所以我建立了以下解決方案,它的工作原理很好 – 儘管它沒有向使用者提供他們的標籤未被新增的任何反饋 (它只是立即撤消標籤建立):
add_action('create_term','undo_create_term',10, 3);
function undo_create_term ($term_id, $tt_id, $taxonomy) {
if ( !current_user_can( 'administrator' ) ) {
if($taxonomy == 'post_tag') {
wp_delete_term($term_id,$taxonomy);
}
}
}
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。