web-dev-qa-db-ja.com

カスタム投稿タイプのカスタムフィールドの値の合計を計算する方法

だからタイトルは少し不明ですが、ここで私が持っているものです:

カスタム投稿の種類:プロジェクト
カスタム投稿の種類:投資
+カスタムフィールド:金額

そして私は1つのページを持っています私はカスタムの投稿タイプのループで投資+金額をロードするので、それはこのように見えます:

____________________________________________
| custom post type 1 |      amount 1       |
|____________________|_____________________|
| custom post type 2 |      amount 2       |
|____________________|_____________________|

今私がやりたいのは、金額1 +金額2の合計金額を計算することです。

ところで、私が使用するコードは次のとおりです。

<?php
                    if ( is_user_logged_in() ):
                        global $current_user;
                        get_currentuserinfo();

                        $author_query = array('posts_per_page' => '-1','author' => $current_user->ID, 'post_type' => 'investeringen');
                        $author_posts = new WP_Query($author_query);
                        while($author_posts->have_posts()) : $author_posts->the_post();

                        $parent_id = wpcf_pr_post_get_belongs(get_the_ID(), 'project');
                        $parent = get_post($parent_id);
                        $percentagenumber = do_shortcode("[types field='rente' id='$parent_id']");

                        $geinvesteerd = types_render_field("geinvesterd", array( "raw" => "true") );
                        $opgebracht = $geinvesteerd / 100 * $percentagenumber; // 

                ?>
                <tr>
                    <td class="project">
                        <?php
                            $parent_id = wpcf_pr_post_get_belongs(get_the_ID(), 'project');
                                if (!empty($parent_id)) {
                                    $parent = get_post($parent_id);
                                    echo $parent->post_title;
                            }
                        ?>
                    </td>
                    <td class="demo">&euro; <?php echo number_format("$geinvesteerd",0,",","."); ?>,-</td>
                    <td>&euro; <?php echo number_format("$opgebracht",0,",","."); ?>,-</td>
                    <td>
                    <?php
                        echo number_format("$percentagenumber", 2, '.', '') . ' &#37;'; 
                    ?>
                    </td>
                    <td><a href="
                    <?php
                        $parent_id = wpcf_pr_post_get_belongs(get_the_ID(), 'project');
                            if (!empty($parent_id)) {
                                $parent = get_post($parent_id);
                                echo post_permalink($parent_id);
                        }
                    ?>
                    "><img src="<?php echo get_stylesheet_directory_uri(); ?>/images/meta_icons/eye.png" /></a></td>
                </tr>
            <?php
                global $count;
                $count = $author_posts->post_count;
                endwhile;

                else :
            ?>  
                <tr>
                    <td colspan="5" style="text-align:left">U moet inloggen voordat u deze pagina / statistieken kunt bekijken</td>
                </tr>
            <?php
                endif;
            ?>

読んでくれてありがとう、皆さんが私を助けてくれることを願っています!

1
Cas

それは現在の合計を維持することの問題です。私は質問について100%はっきりしていないので、以下に私はあなたがしたいことのために変更/擬似コードを提供しています:

<?php
                if ( is_user_logged_in() ):
                    global $current_user;
                    get_currentuserinfo();

                    // ADDED: Initialize the total variable to prevent warnings
                    $grandtotal = 0;

                    $author_query = array('posts_per_page' => '-1','author' => $current_user->ID, 'post_type' => 'investeringen');
                    $author_posts = new WP_Query($author_query);
                    while($author_posts->have_posts()) : $author_posts->the_post();

                    $parent_id = wpcf_pr_post_get_belongs(get_the_ID(), 'project');
                    $parent = get_post($parent_id);
                    $percentagenumber = do_shortcode("[types field='rente' id='$parent_id']");

                    $geinvesteerd = types_render_field("geinvesterd", array( "raw" => "true") );
                    $opgebracht = $geinvesteerd / 100 * $percentagenumber; //

                    // ADDED: Add this to the running total
                    $grandtotal+= $geinvesteerd; 

            ?>
            <tr>
                <td class="project">
                    <?php
                        $parent_id = wpcf_pr_post_get_belongs(get_the_ID(), 'project');
                            if (!empty($parent_id)) {
                                $parent = get_post($parent_id);
                                echo $parent->post_title;
                        }
                    ?>
                </td>
                <td class="demo">&euro; <?php echo number_format("$geinvesteerd",0,",","."); ?>,-</td>
                <td>&euro; <?php echo number_format("$opgebracht",0,",","."); ?>,-</td>
                <td>
                <?php
                    echo number_format("$percentagenumber", 2, '.', '') . ' &#37;'; 
                ?>
                </td>
                <td><a href="
                <?php
                    $parent_id = wpcf_pr_post_get_belongs(get_the_ID(), 'project');
                        if (!empty($parent_id)) {
                            $parent = get_post($parent_id);
                            echo post_permalink($parent_id);
                    }
                ?>
                "><img src="<?php echo get_stylesheet_directory_uri(); ?>/images/meta_icons/eye.png" /></a></td>
            </tr>
        <?php
            global $count;
            $count = $author_posts->post_count;
            endwhile;

            // ADDED: Output the grand total here
            ?>
            <tr><td>TOTAL</td><td><?php echo number_format($grandtotal, 0, ",", "."); ?></td><td colspan="3">&nbsp;</td></tr>
            <?php
            else :
        ?>  
            <tr>
                <td colspan="5" style="text-align:left">U moet inloggen voordat u deze pagina / statistieken kunt bekijken</td>
            </tr>
        <?php
            endif;
        ?>
1
cale_b