我正在尝试在自定义分类法中向自定义术语添加post。我不确定我是否正确处理了这个问题。到目前为止,我们有自定义taxomony“仓库”和自定义术语“旧库存”。
问题是,当我尝试使用term\\u id将术语添加到帖子中时,它会创建一个以id作为名称的新术语。下面是我使用的代码:
//add new product
$id = @wp_insert_post(array(
\'post_title\' => $name,
\'post_content\' => $desc,
\'post_status\' => \'publish\',
\'post_parent\' => $parent,
\'tax_input\' => array(
array(
\'warehouse\' => $parent
))
), true);
//set terms
wp_set_object_terms($id, array($parent), "warehouse");
如您所见,我已尝试将术语\\u id添加为\'
post_parent
\' as\'
tax_input
\' 并使用\'
wp_set_object_terms
\'
如果term\\u id是25,那么上面将创建一个称为“25”的新术语!而不是把这个帖子贴在id为25的学期里。
谢谢你的帮助,干杯
最合适的回答,由SO网友:Daithí 整理而成
在处理这个问题时,原来$parent var必须转换为int。查看函数wp\\u set\\u object\\u terms,它使用is\\u int()测试参数$parent。var$父项来自使用ajax通过http POST发送的$\\u POST。
在这个过程中的某个地方,可能在javascript方面,我的int$父对象被转换为字符串。我假设var中添加了一个新行字符或其他内容,从而使php认为它是一个字符串。
然后,解决方案是将var$父对象转换为int,如下所示:(int)$parent
所以将最后一行更改为
wp_set_object_terms($id, (int)$parent, "warehouse");
解决了问题;)