Как суммировать просмотры всех постов на 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 );