问题描述
有没有办法将页面的创建 (自定义帖子类型) 限制到特定的深度 – 例如 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。