为什么会发生这种情况menu_order
是0
, 所以除非你手动更改Page/Post 插入到您的DB将正确地具有menu_order
设置
您可以设置menu_order
对于任何Page 通过下面的快速编辑(如果愿意,也可以通过编辑页面屏幕)-
默认情况下,
Post 和
Custom Post Type 帖子没有
muen_order
属性,意味着
0
将始终使用,但这可以被覆盖(请继续阅读以了解如何使用)。
我从你的问题中看出type=project
; 我不确定你指的是不是Custom Post Type, 或者如果type
是一个Custom Field.
假设“project”是自定义帖子类型,您可以添加menu_order
属性任意Custom Post Type 非常容易;只需确保您包括page-attributes
在supports
声明Custom Post Type -
\'supports\' => array(\'title\', \'editor\', \'excerpt\', \'thumbnail\', \'page-attributes\'),
如果您试图显示内置类型的帖子,则假设“project”是一个自定义字段
Post, 意思是
project
是一个
Custom Field, 然后您需要添加
menu_order
属性到
Post 类型-
add_action(\'admin_init\', \'add_post_page_attributes\');
function add_post_page_attributes(){
add_post_type_support( \'post\', \'page-attributes\' );
}
更改默认的“menu\\u order”(菜单顺序)如果愿意,可以使用以下代码覆盖默认值
menu_order
把它设置成你想要的任何东西。
我自己使用这个代码是因为我有一个独特的要求,即按非标准顺序订购1-100篇文章,然后按字母顺序订购其余的文章。我使用100
默认情况下,但您可以将其更改为您想要的任何内容-
add_filter(\'wp_insert_post_data\', \'set_default_menu_order\', \'99\', 2);
function set_default_menu_order($data, $postarr){
if($data[\'post_type\'] === \'post\') : // Ensure we\'re saving a desired Post Type...
$data[\'menu_order\'] = ($data[\'menu_order\'] == \'0\') ? \'100\' : $data[\'menu_order\']; // ...Check to see if a \'menu_order\' has been set; if so, keep it, if not, use the default
endif;
return $data; // Return the new data
}