目的是确保在编辑帖子时,列出层次分类法的元盒不会在更新时重新排序,以将选中的项放在顶部。
马上edit-form-advanced.php 呼叫add_meta_box(), 传递的回调post_categories_meta_box, 定义于meta-boxes.php.
post_categories_meta_box() 调用wp_terms_checklist(), 离开checked_ontop 参数未定义。wp_terms_checklist() 该参数默认为true, 这是所有这些胡闹的根本原因。
在我们退出并发现之前,在链条的任何地方都找不到过滤器挂钩add_meta_boxes 和add_meta_boxes_{$post_type}.
我能想到的唯一解决办法就是抓住其中一个行动,全球化$wp_meta_boxes, 并替换post_categories_meta_box 用我自己的回调进行回调,在这里我完全复制了所有post_categories_meta_box() 只需添加参数\'checked_ontop\' => false.
作品但很烦人。这似乎很荒谬——难道没有比这更优雅的方式来简单地让您的层次分类法在元数据库中保持其顺序吗?