WP_SET_OBJECT_TERMS在没有芯片的情况下不更新数据库()

时间:2019-06-12 作者:Aravona

我已将自定义分类添加到媒体附件。在单独的帖子页面中,这些内容正在正确更新,并进行了一些调整以正确更新列数,我可以在管理/数据库中看到这些更改,没有任何问题。

在媒体弹出窗口中,我可以更改分类法并使用edit_attachment 我能看到的行动wp_set_object terms 正在激发,我还可以看到它返回了一个数组,其中包含更新术语的正确ID:

wp_set_object_terms($id, $cat_ids, \'attachment_category\', false);
//returns
array(1) {
    [0]=>
    string(1) "3"
}
3是相关术语的正确ID,但我在数据库中看不到更新,当我刷新页面或关闭/重新打开弹出窗口时,更改会恢复。

为什么是wp_set_object_terms 在这种情况下,不是更新数据库,而是认为它成功了?edit_attachmentsave-attachment-compat 在窗体上触发操作。如果我加上die(); 在我的函数结束时,停止任何进一步的更改,它会更新数据库,这是正确的行为吗?

1 个回复
SO网友:nmr

使用前$cat_idswp_set_object_terms() 函数,将字符串中的所有值强制转换为数字。

注释来自documentation:

整数被解释为标记ID。Warning: 某些函数可能返回term_ids 作为字符串,将被解释为由数字字符组成的段塞!

相关推荐

使用快速编辑更新POST时,POST_ROW_ACTIONS过滤器不工作

我使用post\\u row\\u操作创建了两个链接,页面加载时显示良好。但使用快速编辑更新帖子后,链接将消失。是WordPress的bug还是我错过了什么。我的代码如下所示。add_filter(\'post_row_actions\', \'add_new_link\', 10, 2); public function add_new_link($actions, $page_object) { $actions[\'new_action\'] = \'<