我正在尝试更新meta_value
每当我在WordPress仪表板中手动批准评论时。我不知道如何动态地执行此操作,但当我手动添加帖子ID时,它会起作用:
add_action( \'wp_set_comment_status\', \'average_ratings\', 10, 2 );
function average_ratings( $comment_ID, $comment_status ) {
if ( $comment_status == \'approve\' ) {
function average_ratingfn() {
global $wpdb;
$post_id = \'208\';
// bla bla bla
}
$commentar = average_ratingfn();
add_post_meta( \'208\', \'overall\', $commentar );
}
}
如何替换
208
具有
get_the_ID()
?
SO网友:birgire
您应该考虑删除average_ratingfn()
函数定义,并使用post ID的输入参数调用它。
您可以尝试使用(未测试)获取注释对象:
$comment = get_comment( $comment_ID );
然后确保它不为null,或者您有一个实际的注释对象:
if( $comment instanceof \\WP_Comment )
$post_id = $comment->comment_post_ID;
你应该能够得到
comment_post_ID
来自该对象的字段。
我想你也可以用钩子wp_transition_comment_status()
函数,其中注释对象位于输入参数中。
例如挂钩:
comment_{$new_status}_{$comment->comment_type}
comment_{$old_status}_to_{$new_status}
transition_comment_status