以编程方式用逗号保存标签是可能的,而且非常容易。
调用时wp_set_post_terms( $post_id, $terms, $taxonomy )
,如果提供一个字符串,它将被分解成一个数组。如果您将其$terms
作为数组提供,则数组中的每个项目都将作为其自己的术语提供,而不会拆分为多个术语。
// Example term with comma.
$terms = 'Surname, Given Names';
// Creates and/or assigns multiple terms separated by a comma.
wp_set_post_terms( $post_id, $terms, $taxonomy );
// Creates and/or assigns a single term with a comma.
wp_set_post_terms( $post_id, (array) $terms, $taxonomy );
两者wp_insert_post
并在设置时随后wp_update_post
使用。wp_set_post_terms
$arg
tax_input
// Ensure $terms is an array.
$args['tax_input'][$taxonomy] = (array) $terms;
$post_id = wp_insert_post( $args );
使用WordPress仪表板UI即时创建术语的最佳方法可能是要求您创建自己的元框,以将包括逗号在内的任何字符串作为单个术语提交。在创建自定义字段以保存分类法时,默认情况下,某些插件(例如ACF Pro)会默认执行此操作,并在保存时选择也加载并分配术语。
/* Example JSON config snippet for an ACF Pro Export/Import. */
/* Most likely config for most of these situations: "allow_null" */
/* and "field_type" may need to be adjusted depending on the situation. */
{
"type": "taxonomy",
"field_type": "multi_select",
"allow_null": 1,
"add_term": 1,
"save_terms": 1,
"load_terms": 1
}
即使使用逗号保存,在编辑帖子时,这些带有逗号的术语的每个部分仍可能显示为单独的项目。在这种情况下,最好禁用默认UI并依赖自定义元框。编辑帖子类型时,可以使用“屏幕选项”来完成。注册时,自定义分类法也可以从快速编辑部分中隐藏。
// Register Custom Taxonomy args - disable default UI in quick edit.
$args['show_in_quick_edit'] = false;
register_taxonomy( $taxonomy, (array) $post_types, $args );