我的网站上有一个表单,允许登录用户以基本表单标记网站前端的产品。我使用Woocommerce作为商业平台。
Woocommerce使用自定义帖子类型注册其产品。产品标签是Woocommerce用于标记产品的分类法(Product\\u tag)。
我正在使用wp\\u set\\u object\\u terms插入用户提交的术语。问题是,当他们提交新的“标签”时,它会覆盖任何现有的“标签”,并替换为新的“标签”。
我只需要为表单添加标签并保留产品的现有标签(post)的方法。
以下是我所拥有的:
if (is_user_logged_in()) {
if(isset($_POST[\'submitted\']) && isset($_POST[\'post_nonce_field\']) && wp_verify_nonce($_POST[\'post_nonce_field\'], \'post_nonce\')) {
//Tagging
wp_set_object_terms( $post->ID, explode( \',\', $_POST[\'postTags\'] ), \'product_tag\' );
}
?>
<form name="primaryTagForm" action="#" id="primaryTagForm" method="POST" enctype="multipart/form-data" >
<fieldset class="tags">
<label for="post_tags">Tags:</label>
<input type="text" value="" tabindex="35" name="postTags" id="postTags" />
</fieldset>
<fieldset>
<input type="hidden" name="submitted" id="submitted" value="true" />
<?php wp_nonce_field( \'post_nonce\', \'post_nonce_field\' ); ?>
<button class="button" type="submit"><?php _e(\'Tag Product\', \'framework\') ?></button>
</fieldset>
</form>
最合适的回答,由SO网友:s_ha_dum 整理而成
第四个参数为wp_set_object_terms()
是一个“append”参数。
$append
(bool)(必选)如果为true,标记将附加到对象。如果为false,标记将替换现有标记
Default: False
http://codex.wordpress.org/Function_Reference/wp_set_object_terms
如果通过,代码应该可以工作
true
作为第四个论点。
wp_set_object_terms(
$post->ID,
explode( \',\', $_POST[\'postTags\'] ),
\'product_tag\',
true
);