我创建了一个自定义帖子类型属性,在其中我创建了一个名为Position的自定义分类法,在其中我想创建一些术语我使用下面的代码创建了术语Slider,并且工作正常。
function realestatepro_custom_terms() {
wp_insert_term(
'Slider', // the term
'Position', // the taxonomy
array(
'description'=> 'Will be featured in the home page slider.',
'slug' => 'home-page-slider'
)
);
}
add_action( 'init', 'realestatepro_custom_terms' );
但是我想创建更多的术语,比如精选和推广,但我不确定如何,我确实考虑重复整个wp_insert_terms块,但这看起来不对,然后我试着添加另一个术语直接在第一个之后,但那是行不通的。
任何人都知道添加多个字词的最佳方法吗?
答案 0 :(得分:1)
wp_insert_term()
是一个很大的功能,有很多清理,操作和错误检查。没有重复版本的版本。因此,您必须将wp_insert_term()
包装到foreach
循环中。
function realestatepro_custom_terms() {
$terms = array(
'Slider' => array(
'description'=> 'Will be featured in the home page slider.',
'slug' => 'home-page-slider'
),
'Featured' => array( /*properties*/
),
'Promoted' => array( /*properties*/
)
);
foreach($terms as $term => $meta){
wp_insert_term(
$term, // the term
'Position', // the taxonomy
$meta
);
}
}
add_action( 'init', 'realestatepro_custom_terms' );
另一种可能性是你可以像这样使用wp_set_object_terms()
:
$terms = array( 'Featured', 'Promoted', 'Slider');
wp_set_object_terms( $object_id, $terms, 'Position' );
其中$ object_id是您创建的虚拟属性帖子。添加条款后,您可以删除帖子。这里的问题是你不能像slug或描述那样设置任何术语元。此外,wp_set_object_terms()
函数只包含一个foreach
循环,wp_insert_term()
重复,类似于第一个解决方案。它没什么太壮观的。我并不是真的推荐第二种选择,只是提一下兴趣。