如何根据条件获取wp_Query中的meta_key的meta_value之和

时间:2016-08-30 作者:ma_dev_15

以下是我的查询参数:

 $query_args = array(
            \'post_type\' => \'rented_properties\',
            \'post_status\' => \'publish\',
            \'order\' => \'DESC\',
            // \'fields\' => \'SUM(amount_to_paid)\',
        );


        $my_querys = null;
        $my_querys = new WP_Query($query_args);
我的元密钥是amount_to_paid, 我想得到这个查询条件的所有meta\\u值的总和。请建议您的答案query_args.

我的设想是:我有1000篇帖子,每个帖子都有meta\\u key amount\\u to\\u paid,这有一定的价值。现在我过滤了20篇帖子,想得到amount\\u to\\u paid的meta\\u值之和。你现在抓到我了吗?

2 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

WP_Query 从数据库获取帖子,但它不是一个通用的SQL查询类,应该真正调用它WP_Post_Query, 像WP_Query 意味着它可以执行任何SQL。

因此,您需要做几件事:

抓住你需要的帖子,获取他们的元价值amount_to_paid 使用get_post_meta+ - / * = += -=因此:

$sum = 0;
$query = new WP_Query($query_args);
if ( $query->have_posts() ) {
    while( $query->have_posts() ) {
        $query->the_post();
        // do the processing for each post
        $sum = $sum + get_post_meta( ... );
    }
}
echo esc_html( $sum );

SO网友:Joefrey

您可以尝试此代码。

global $wpdb;
$meta_key = \'link_click_counter\';
$all_downloads = $wpdb->get_var($wpdb->prepare("
                                  SELECT sum(meta_value) 
                                  FROM $wpdb->postmeta 
                                  WHERE meta_key = %s", $meta_key));

echo $all_downloads;

相关推荐

如何在wp-Query中比较不同的时间戳以获取事件自定义帖子类型?

我有一个带有自定义元数据库的自定义帖子类型(as seen on wptheming.com) 并且希望进行查询以显示即将发生的事件,例如在侧边栏中,过去的日期被忽略。但我需要一个当前时间的值来和事件开始时间进行比较。现在我从current_time(\'mysql\') 看起来是这样的:2012-02-16 13:15:31元的开始时间如下所示:201108121100如何使这两个日期具有可比性?我可以在查询中执行吗?或者是否有其他解决方案?以下是我到目前为止的查询(值留空,时间戳回显):<?ph