我在评论表单中添加了自定义复选框。我正在尝试在数据库中写入此评论的帖子ID。但没有成功。我正在尝试这样的事情:
add_action( \'comment_post\', \'save_chbox_in_db\' );
function save_chbox_in_db() {
$post_id = ??? // Can\'t get id...
insert_to_db ( $email, $post_id ); // custom function
}
我测试了这些选项:
global $post;
$post_id = $post->ID();
global $wp_query;
$post_id = $wp_query->post->ID;
$post_id = get_queried_object_id();
$post_id = get_the_ID();
结果,我得不到任何东西。问题出在哪里?有“comment\\u post”操作吗?还是我犯了一些愚蠢的错误?
最合适的回答,由SO网友:nmr 整理而成
comment_post
钩子传递到附加函数3个参数。的第四个参数add_action()
指示附加函数可以访问的参数数量。
add_action( \'comment_post\', \'save_chbox_in_db\', 10, 3 );
function save_chbox_in_db( $comment_ID, $comment_approved, $commentdata )
{
$post_id = (int)$commentdata[\'comment_post_ID\'];
//
// other code
//
}