Как суммировать просмотры всех постов на WordPress

Я получил массив хранящий в себе ID всех постов и суммировал через цикл но как-то не получается $sum

 global $wpdb;
  $sql = "SELECT id FROM posts WHERE post_type='post'  ";
  $postsID = $wpdb->get_results($sql, ARRAY_A);

$sum = 0;
foreach ($postsID as $value) {
 $sum = sum + get_post_meta($post->ID, 'views', true);
}
echo $sum 


Ответы (1 шт):

Автор решения: WP Punk

Лучший вариант это сделать SQL-запросом.

global $wpdb;
$views = $wpdb->get_var(
    'SELECT SUM(meta_value) FROM ' . $wpdb->postmeta .
    ' WHERE meta_key = "views" and post_id IN (
        SELECT ID FROM ' . $wpdb->posts
    . ' WHERE post_type = "post" AND post_status = "publish"
        )'
);

echo absint( $views );
→ Ссылка