Answers:
使用register_post_type函数声明自定义帖子类型时,您必须在支持字段中添加“ page-attributes”,如以下示例所示:
register_post_type('myposttype', array(
'supports' => array('title', 'editor', 'page-attributes'),
'hierarchical' => false
));
您还需要在'supports'字段中添加所有其他受支持的meta框,有关register_post_type字段的更多信息,请参见http://codex.wordpress.org/Function_Reference/register_post_type。
而且据我所知,没有任何内置方法可以防止两个相同的顺序,这是因为您可以基于层次结构创建子顺序(因此一组子页面可以具有与另一组不同的顺序)
page-attributes
表示order
字段和parent
字段。我如何摆脱这个parent
领域?
hierarchical
为false摆脱它。
除了@ Dave-Hunt的响应之外,您还可以添加一个过滤器,例如以下内容,以定义自定义顺序-在这种情况下,按标题按字母顺序排列。(代码要感谢Mark Leong的博客文章。)is_admin()
如果您还希望在前端自定义order_by,请删除该支票。
函数set_custom_post_types_admin_order($ wp_query){ 如果(is_admin()){ //从查询中获取帖子类型 $ post_type = $ wp_query-> query ['post_type']; 如果($ post_type =='POST_TYPE'){ //'orderby'值可以是任何列名 $ wp_query-> set('orderby','title'); //'order'值可以是ASC或DESC $ wp_query-> set('order','ASC'); } } } add_action('pre_get_posts','set_custom_post_types_admin_order');
更新资料
有关保存前的验证,请参见以下答案:https : //wordpress.stackexchange.com/a/40095/4645 ,其中讨论了您的选项。基本上,它归结为自定义jQuery,因为WordPress没有任何预保存的钩子。
另外(在此复制我之前的评论以供将来参考),这是在管理员中公开“菜单顺序”字段的方法,因此它是用户可编辑的,因为它适用于页面:在自定义帖子类型管理屏幕中添加“菜单顺序”列