Отобразить в счетчике количество всех постов

Решено

Здравствуйте. Имеется код:

function wpfp_get_current_count() {
global $wpdb;
$current_post = get_the_ID();
$query = "SELECT post_id, meta_value, post_status FROM $wpdb->postmeta";
$query .= " LEFT JOIN $wpdb->posts ON post_id=$wpdb->posts.ID";
$query .= " WHERE post_status='publish' AND meta_key='wpfp_favorites' AND post_id = '".$current_post."'"; $results = $wpdb->get_results($query);
if ($results) {
foreach ($results as $o): echo $o->meta_value;
endforeach;
}else {
echo( '0' );
}
} 
Он выводит количество добавленных статей в избранное, через плагин. Проблема в том что он количество при добавлении от 2 статей не показывает. Т.е. Есть статья 1 и статья 2, счетчик закладок 0. Когда добавляем 1 статью в избранное, счетчик становится 1 (get_the_ID() в цикле нашел id текущего поста и показал его). Когда переходим на статью 2 и добавляем в избранное, счетчик 1, т.е. счетчик работает только для текучих статей, а не в общем. Как сделать чтобы работал общий?

Добавить Комментарий
    Ответ
     function onwp_get_meta_key_sum_value($meta_key) {
     global $wpdb;
     $meta_key = esc_sql($meta_key);
     $table_name = $wpdb->get_blog_prefix() . 'postmeta';
     // делаем запрос
     $result = $wpdb->get_results("SELECT SUM( meta_value ) FROM {$table_name} WHERE meta_key = '{$meta_key}';", ARRAY_N);
     if ($result[0][0]) {
     $result = $result[0][0];
     } else {
     $result = 0;
     }
     return $result;
     }
    echo onwp_get_meta_key_sum_value('wpfp_favorites');
     

    проверил — работает

    СПАСИБО ОГРОМНОЕ! Красота!

    в 26.02.2016.
    Добавить Комментарий

    Старайтесь предоставлять код в читаемой формате.

     

    Если говорить о том что выводятся только для текущего, значит не нужно выбирать для текущего))

    
    AND post_id = '".$current_post."' // не нужно
    
    

     

     

    Но на самом деле не очень понял вопрос.

    в 25.02.2016.

    Код пытался вставить, но он ни в какую  не хотел ставится так как хотелось.
    Да, это я уже пробовал сделать, но тогда появляются какие-то лишние цифры)

    Посмотрел откуда берутся данные из БД.

    В meta_value содержится количество добавленных статей (см. скриншот)

    RE: Отобразить в счетчике количество всех постов

    Цифры в столбце meta_value это количество добавленных статей в закладки.
    Нужно отобразить на сайте их общее количество.

    Up

    Как вы думаете в wp реализована функция которая возвращает все поля из таблицы в виде массива?

    в 25.02.2016.

    Честно еще не совсем понял что именно вам нужно получить))

    Вам нужно получить значение wpfp_favorites для поста? Для одного поста будет 0 или  1 или 2..

    Или вам нужно получить для пользователя? Тогда отсюда вы эти данные не получите, так как тут нет id пользователя который добавил.

    Возможно вам нужно вывести общее количество meta_value для всех записей? Это могу подсказать.

    в 25.02.2016.

    Или вам нужно количество постов у которых не 0? Это тоже могу подсказать)

    в 25.02.2016.
    Добавить Комментарий

    Об объединении meta_value я и пытался сказать))
    Нужно вывести общее количество того что есть в meta_value.

    извиняюсь что создал ответ на вопрос. Но в комментариях не появилась форма.

    в 26.02.2016.

    Ничего страшного) Главное желание разобраться)

    в 26.02.2016.
    Добавить Комментарий

    Попробуйте так:

     function onwp_get_meta_key_sum_value($meta_key) {
     global $wpdb;
     $meta_key = esc_sql($meta_key);
     $table_name = $wpdb->get_blog_prefix() . '_postmeta';
     // делаем запрос
     $result = $wpdb->get_results("SELECT SUM( meta_value ) FROM {$table_name} WHERE meta_key = {$meta_key};", ARRAY_N);
     if ($result[0][0]) {
     $result = $result[0][0];
     } else {
     $result = 0;
     }
     return $result;
     }
     

    Вывод:

    echo onwp_get_meta_key_sum_value('wpfp_favorites');
    

    Спасибо, но нет.
    При добавлении в избранное количество — 0.

    в 26.02.2016.

    а вывод значения через мою функцию?

    
    echo onwp_get_meta_key_sum_value('wpfp_favorites');
    
    

    Или для вывода значения используется код плагина?

     

    в 26.02.2016.

    Ваш код:

     function onwp_get_meta_key_sum_value($meta_key) {
     global $wpdb;
    $meta_key = esc_sql($meta_key);
    $table_name = $wpdb->get_blog_prefix() . '_postmeta';
    // делаем запрос
    $result = $wpdb->get_results("SELECT SUM( meta_value ) FROM {$table_name} WHERE meta_key = {$meta_key};", ARRAY_N);
     if ($result[0][0]) {
     $result = $result[0][0];
     } else {
     $result = 0;
     }
     return $result;
     }
     

    Добавил в function.php темы.

    Вывод на странице сделал так:

     <?php echo onwp_get_meta_key_sum_value('wpfp_favorites'); ?>
     

    Если вы имеет ввиду шорткод, то нет.
    Изначально в плагине нет функции вывода количества закладок.

     

     

    в 26.02.2016.
    Добавить Комментарий

    Ваш ответ

    Размещая свой ответ, вы соглашаетесь с правилами сайта.