問題描述

有沒有辦法將頁面的建立 (自定義帖子型別) 限制到特定的深度 – 例如 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。