您要查找的筛选器被称为wp_terms_checklist_args
并由使用wp_terms_checklist()
(内部调用它以显示类别元框)。
在本例中所示的某些情况下,可以使用此选项预先选择特定类别(按ID)
add_filter(\'wp_terms_checklist_args\', \'WPSE_pre_select_categories\', 10, 2);
function WPSE_pre_select_categories($args, $post_id) {
$post = get_post($post_id);
// only pre select categories for new posts
if ($post->post_status !== \'auto-draft\' || $post->post_type !== \'post\')
return $args;
// select categories with ID 4 and 6
$select_categories = [4, 6];
// little hack so array_merge() works if default is NULL
if (empty($args[\'selected_cats\'])) {
$args[\'selected_cats\'] = [];
}
// array_merge() with numerical indices only appends
// so I use array_unique() to remove any duplicates
$args[\'selected_cats\'] = array_unique(array_merge($args[\'selected_cats\'], $select_categories));
return $args;
}