WP_SET_OBJECT_TERMS在循环内不工作

时间:2011-08-23 作者:Albin Joseph

我有以下代码

$genres= array(\'action\', \'comedy\', \'horror\');
foreach($genres as $genre){
      $ret = wp_set_object_terms( $postId, $genre, \'genres\');
}
但这段代码只将恐怖视为一种类型。当我也检查DB时,我没有动作和喜剧的记录。我如何将这三者与我的流派联系起来?

提前谢谢。

2 个回复
最合适的回答,由SO网友:Bainternet 整理而成

可以将术语数组传递给wp_set_object_terms, 无需为每个:

$genres= array(\'action\', \'comedy\', \'horror\');
$ret = wp_set_object_terms( $postId, $genres, \'genres\');

SO网友:Ralph

@Bainternet的回答让我走上了正确的道路,将逗号分隔的标签字符串作为单个标签存储在数据库中,并将每个单独的标签与适当的帖子相关联。

我需要这个,因为我有一个表单字段,允许用户输入逗号分隔的标记列表。

总之,下面是我使用的完整代码:

// Sanitize user/form input
$custom_tags = trim(htmlspecialchars($_POST[\'custom_tags\']));
// Explode returns the comma separated terms as an array
$custom_tags_separated = explode(\',\', $custom_tags);
// Pass the array of terms to wp_set_object_terms
wp_set_object_terms($post_id, $custom_tags_separated, \'custom_tag\');

结束

相关推荐

WP_SET_OBJECT_Terms()无法设置术语

好了,伙计们,这是一个场景。我正在尝试设置一个函数,该函数将自动将一篇帖子(发布时)复制到另一种帖子类型。因此,一篇常规的博客文章被发布,发布后,它的所有信息都被复制到一个自定义的帖子类型(对于WP电子商务),自动为该博客文章创建一个存储条目。我编写了一个函数,该函数负责提取所有信息,并使用wp\\u insert\\u post()将其插入到新帖子中。这一切都很好,除了一件事。我正在使用wp\\u set\\u object\\u terms()根据博客文章的标记设置新产品的商店类别ID。然而,由于某些