对于不使用块编辑器的帖子类型,可以使用wp_terms_checklist_args
筛选以操作层次分类法的选定术语。您可以使用过滤器设置预先选择的术语,例如,
function auto_check_hierarchial_terms_on_new_post( $args, $post_id ) {
// is it new post?
if ( \'auto-draft\' !== get_post_status($post_id) ) {
return $args;
}
// is it my taxonomy?
if ( \'my_custom_taxonomy\' !== $args[\'taxonomy\'] ) {
return $args;
}
// let\'s not overwrite anything by accident
if ( ! empty( $args[\'selected_cats\'] ) ) {
return $args;
}
// get existing terms
$terms = get_terms( array(
\'taxonomy\' => $args[\'taxonomy\'],
\'hide_empty\' => false,
) );
if ( ! $terms || ! is_array( $terms ) ) {
return $args;
}
// pre select all terms
$args[\'selected_cats\'] = array();
foreach ($terms as $term) {
$args[\'selected_cats\'][] = $term->term_id;
}
return $args;
}
add_filter(\'wp_terms_checklist_args\', \'auto_check_hierarchial_terms_on_new_post\', 10, 2);
有一个
note on the filter, 对于WP 5块编辑器,它似乎已过时。