我有一个使用过滤器的函数preprocess_comment
并且想要使用update_comment_meta( $comment[\'comment_ID\'], \'post_id\', $post_id );
. 但是,preprocess\\u注释中的数组没有comment_ID
.
在查看过滤器时,我找不到用于此函数的其他过滤器。
该函数将评论写入外部论坛。此部分功能正常工作,但在update_comment_meta
由于错误“重复”注释。在查看数据库时comment_post_ID
写入数据库,而不是comment_ID
.
在尝试理解此挑战时,comment\\u ID不在数组中。这是因为它是注释的“预处理”,并且ID不可用。这是正确的吗?
因此,我如何向_commentmeta
以便写入comment\\u ID而不是comment\\u Post\\u ID?
我已经看过了hooks 对于评论,但看不到我可以连接到的任何内容,以便将评论写入外部论坛,并允许更新评论元数据。
有人对采取的方向有什么建议吗?
最合适的回答,由SO网友:s_ha_dum 整理而成
在将帖子插入数据库之前,您不会获得评论ID。Before that point, ID不存在。你必须使用一个在事件发生后激发的钩子。。。
1735 /**
1736 * Fires immediately after a comment is inserted into the database.
1737 *
1738 * @since 1.2.0
1739 *
1740 * @param int $comment_ID The comment ID.
1741 * @param int|string $comment_approved 1 if the comment is approved, 0 if not, \'spam\' if spam.
1742 */
1743 do_action( \'comment_post\', $comment_ID, $commentdata[\'comment_approved\'] );