问题告诉我们。。。是否可以更改特定帖子所有评论的评论元?
我知道它可能是这样工作的:
$comments = get_comments( array(
\'post_id\' => $post->ID,
) );
foreach( $comments as $comment ) {
update_comment_meta( $comment->comment_ID, \'accepted\', \'0\' );
}
但有没有更优雅的方法呢?
最合适的回答,由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 : 尚未测试代码。