更新特定帖子的所有评论的评论元

时间:2017-05-03 作者:GDY

问题告诉我们。。。是否可以更改特定帖子所有评论的评论元?

我知道它可能是这样工作的:

$comments = get_comments( array(

    \'post_id\' => $post->ID,

) );

foreach( $comments as $comment ) {

    update_comment_meta( $comment->comment_ID, \'accepted\', \'0\' );

}
但有没有更优雅的方法呢?

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

如果没有评论,你的方法将非常缓慢。使用以下方法可以更快地执行。

global $wpdb;
$sql = \'
    SELECT GROUP_CONCAT( comment_ID ) AS ids
    FROM  `wp_comments` 
    WHERE comment_post_ID =  \'.$POST_ID;

    $ids = $wpdb->get_results($sql, ARRAY_A);

if(isset($ids[0][\'ids\']) && $ids[0][\'ids\'] != \'\'){
    $wpdb->query(\'
        UPDATE wp_commentmeta 
        SET meta_value = 0 
        WHERE comment_id IN (\'.$ids[0][\'ids\'].\') 
        AND meta_key = "accepted"
    \');
}
P.S : 尚未测试代码。