問題描述
有沒有辦法將頁面的建立 (自定義帖子型別) 限制到特定的深度 – 例如 1 級 (其中 0 =父,1 =小孩,2 = grand-child 等)?
例如,讓我們建立一個’Summer’ 配方頁面 (自定義帖子型別:配方),帶有一個’/summer’ 。現在我們來建立一個’Pie’ 頁面 (‘Summer’ 的一個小孩),帶有一個’/summer/pie’ 。我想阻止使用者建立一個作為’Pie’ 或任何其他 sub-page 的孩子的頁面。
-
example.com/summer – > 好
-
example.com/summer/pie – > 好
-
example.com/summer/pie/apple – > 壞
-
example.com/summer/pie/blackberry – > 壞
謝謝。
最佳解決方案
function my_test($a) {
$a['depth'] = 1;
return $a;
}
add_action('page_attributes_dropdown_pages_args','my_test');
將它放在主題的 function.php 或外掛中。
次佳解決方案
以下過濾器僅顯示頁面屬性下拉式清單中的 top-level 自定義帖子型別專案 (主編輯螢幕和快速編輯) 。用您的自定義帖子型別名稱替換’my_custom_post_type’ 。
function my_test($args) {
global $post_type_object;
if ( $post_type_object->name == 'my_custom_post_type') {
$args['depth'] = 1;
}
return $args;
}
add_filter('page_attributes_dropdown_pages_args','my_test');
add_filter('quick_edit_dropdown_pages_args', 'my_test');
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。