WP_SET_OBJECT_TERMS创建分类,但不向其中添加自定义帖子

时间:2021-05-04 作者:user205912

我试图在一个与自定义帖子创建挂钩的函数中调用wp\\u set\\u object\\u terms(通过wp\\u insert\\u post\\u数据),以便从自定义字段为帖子设置分类标记:

$item_brand = ( ! empty( $_POST[ \'brand\' ] ) ) ? $_POST[ \'brand\' ] : get_post_meta( $postarr[ \'ID\' ], \'brand\', true );
wp_set_object_terms( $postarr[ \'ID\' ], $item_brand, \'brand\', false);
创建或修改帖子时,该函数从自定义字段创建分类术语没有问题,但它不会设置帖子的术语。我的猜测是,处理post ID变量是一个问题,因为我试图在wp\\u set\\u object\\u terms调用中设置静态post ID,而具有静态ID的post被分配了新标记。因此,我尝试这样做来缓解解析当前ID时出现的任何问题:

$post_id = intval ((! empty( $_POST[ \'ID\' ] ) ) ? $_POST[ \'ID\' ] : $postarr[ \'ID\' ]);
wp_set_object_terms( $post_id, $item_brand, \'brand\', false);
但这并没有帮助,我也知道,我成功地获得了上面的帖子ID,因为我在函数中使用它用于其他目的,它只是不适用于wp\\u set\\u object\\u术语。老实说,我不知道在哪里可以进一步了解这一点,如果有任何可能有所帮助的建议,我将不胜感激。

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

wp\\U insert\\U post\\U数据在post数据插入数据库之前应用。使用save\\u post挂钩来设置自定义分类术语。就是这样。谢谢莎莉的推荐。

相关推荐

Display name of taxonomy once

只显示一次分类法名称的最佳方式是什么?我使用了一种叫做show_category 它有三类:新闻、评论和未分类。我有六个帖子:三个在新闻中,一个在评论中,两个在未分类中。它们显示如下:News (name of category in taxonomy) News item 1 News (name of category in taxonomy) News item 2 News (name of category in taxonomy) News item 3