【问题标题】:How to get all metavalue for a specific custom field for all posts in one category?如何获取一个类别中所有帖子的特定自定义字段的所有元值?
【发布时间】:2011-10-29 20:40:53
【问题描述】:

我正在尝试获取一个自定义字段的所有元值的总和。我现在得到了整个站点元值的总和。我希望它仅限于您所在的类别。

现在的代码如下所示:

            <?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>';
            ?>

有人可以帮我过滤掉一个类别吗?

会很棒!

M

【问题讨论】:

    标签: mysql wordpress custom-fields


    【解决方案1】:

    在您的 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_postmeta 表,这是保存自定义字段的位置(使用 sum() sql 函数)。
    猜你喜欢
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多