@Xvlad
Начинающий кодер :)

WordPress — количество постов с определенным meta?

Нужно получить количество постов с определенным meta. Есть плагин rss-autopilot который в админке выводит количество постов в опреденной категории :
https://yadi.sk/i/7X--SU4Cu82YY
Получается это значение с большой нагрузкой на память и базу, через get_posts:
$addedPosts = get_posts(array(
   'post_type'         => 'any',
   'posts_per_page'    => -1,
   'post_status'       => 'any',
   'post_parent'       => null,
   'meta_key'=>'_rss_feed_id',
   'meta_value'=>$item->ID
));

Соответственно большая нагрузка при открытии страницы (170Мб оперативы).
Ищу способ сделать подсчет количества намного менее затратно .
P.S. Пока думаю кэшировать, но думаю есть другой вариант.
  • Вопрос задан
  • 552 просмотра
Решения вопроса 1
trampick
@trampick
Веб-разработчик
Можно в таком духе:
<?php
global $wpdb;
$meta_key = 'my_key';
$wpdb->get_results( "SELECT COUNT(*) FROM wp_postmeta WHERE meta_key = '$meta_key '" );
echo  $wpdb->num_rows . ' Найдено';
?>

Минус -часто бывает что пост удален, а поле meta существует.

Другой вариант через inner join, но он увесистый.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы