在WP Admin的编辑屏幕上,有一个用于WP内置类别分类的元框。此元框是使用post_categories_meta_box()
(/wp-admin/includes/meta-boxes.php
).
此元框使用wp_popular_terms_checklist( $tax_name )
和wp_terms_checklist( $tax_name )
在元框中输出实际类别(带有复选框)。
wp_terms_checklist()
(wp-admin/includes/template.php
) 使用Walker_Category_Checklist
(/wp-admin/includes/class-walker-category.checklist
) 构建类别/复选框。
Walker_Category_Checklist
继承自Walker
(wp-includes/class-wp-walker.php
) 就像许多其他WP Walker一样(Walker_Nav_Menu
, Walker_Comment
, Walker_Category
, 等等)。
扩展时Walker_Nav_Menu
我们可以在wp_edit_nav_menu_walker
过滤并返回我们的自定义walker。有没有办法做到这一点Walker_Category_Checklist
?
===
Update 1:
我明白了
wp_terms_checklist()
有:
apply_filters( \'wp_terms_checklist_args\', $args, $post_id );
我想我可以挂入这个过滤器,更改
walker
和一个定制步行者争论,这可能会奏效?
最合适的回答,由SO网友:Sally CJ 整理而成
是的,因为documentation for wp_terms_checklist()
声明,您可以使用walker
参数(它是$args
的参数wp_terms_checklist_args
hook) 要使用自定义walker,可修改由生成的类别清单的输出wp_terms_checklist()
, e、 g.“中的一个”;“类别”;元框打开wp-admin/post.php
.
自定义walker位于名为includes
:
add_filter( \'wp_terms_checklist_args\', \'my_wp_terms_checklist_args\', 10, 2 );
function my_wp_terms_checklist_args( $args, $post_id ) {
require_once __DIR__ . \'/includes/class-my-walker-category-checklist.php\';
$args[\'walker\'] = new My_Walker_Category_Checklist;
return $args;
}