Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何为一个类别中的所有帖子获取特定自定义字段的所有元值?_Mysql_Wordpress_Custom Fields - Fatal编程技术网

Mysql 如何为一个类别中的所有帖子获取特定自定义字段的所有元值?

Mysql 如何为一个类别中的所有帖子获取特定自定义字段的所有元值?,mysql,wordpress,custom-fields,Mysql,Wordpress,Custom Fields,我试图得到一个自定义字段的所有元值的总和。我现在得到整个站点的元值的总和。我希望它仅限于你所属的类别 代码现在如下所示: <?php $thevariable = $wpdb->get_var($wpdb->prepare(" SELECT SUM($wpdb->postmeta.meta_value) FROM $wpdb->postmeta, $wpdb->po

我试图得到一个自定义字段的所有元值的总和。我现在得到整个站点的元值的总和。我希望它仅限于你所属的类别

代码现在如下所示:

            <?php
            $thevariable = $wpdb->get_var($wpdb->prepare("
            SELECT SUM($wpdb->postmeta.meta_value)
            FROM $wpdb->postmeta, $wpdb->posts
            WHERE $wpdb->postmeta.meta_key='mycustomfield'
            AND $wpdb->postmeta.post_id=$wpdb->posts.id
            "));
            echo '<h1>' . $thevariable . '</h1>';
            ?>

在WP文件中,您可以添加以下行;我想它会满足你的需求

 <?php

    $MySum = 0;

    $args = array(
'category_name' => 'MyCategory',
    'meta_key' => 'mycustomfield',
    'posts_per_page' => '-1' );

    // The Query
    $the_query = new WP_Query( $args);

    // The Loop
    while ( $the_query->have_posts() ) : $the_query->the_post();
        $MySum += get_post_meta($post_id, $key, true);
    endwhile;

    echo '<h1>' . $MySum . '</h1>';
    // Reset Post Data
    wp_reset_postdata();


    ?>

pimpin发送的答案是正确的,但不是聪明的答案,它会导致大量无用的内存丢失。您只需使用一个查询即可实现相同的功能—查询wp_Posteta表,这是保存自定义字段的地方(使用sum()sql函数)。