以编程方式使用逗号保存标记是可能的,而且非常容易。
呼叫时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 Dashboard 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 );