我有一个简单的功能,可以为帖子分配一个类别(使用save_post)如果帖子有任何匹配的术语。问题是,虽然它适用于一个术语,但尝试匹配多个术语是行不通的。这有效:
function categorize_from_tags( $post_id ) {
$cat_boosted = 'cat-boosted';
$terms = 'twin-turbo';
if( has_term( $terms, 'post_tag' ) ) {
wp_set_object_terms( $post_id, $cat_boosted, 'category', true );
}
}
add_action( 'save_post', 'categorize_from_tags', 120, 1 );
当我添加多个术语时,它不起作用:
function categorize_from_tags( $post_id ) {
$cat_boosted = 'cat-boosted';
$terms = 'twin-turbo,ugr'; // Adding more than one term
if( has_term( $terms, 'post_tag' ) ) {
wp_set_object_terms( $post_id, $cat_boosted, 'category', true );
}
}
add_action( 'save_post', 'categorize_from_tags', 120, 1 );
答案 0 :(得分:3)
您发送的类别名称为“twin-turbo,ugr”。
你想发送一个像这样的数组:
$terms = ['twin-turbo','ugr'];
确保检查您尝试使用的WP Global功能的参数。
has_term接受要匹配的字符串或字符串数组。