質問するログイン新規登録

質問編集履歴

2

文言の編集

2017/04/16 07:26

投稿

junkinnet
junkinnet

スコア7

title CHANGED
File without changes
body CHANGED
@@ -2,10 +2,10 @@
2
2
 
3
3
  ※kei344様、ご指摘いただきありがとうございます!内容を編集いたしました。
4
4
 
5
- カスタムフィールドに入力した値の平均値や最小値を表示したいのですが、そういったことは可能でしょうか?
5
+ カスタムフィールドに入力した値の平均値を表示したいのですが、そういったことは可能でしょうか?
6
6
 
7
7
  **■やりたいこと**
8
- 特定のカスタムフィールドに入力した値の、平均値・最小値を表示したい
8
+ 特定のカスタムフィールドに入力した値の、平均値を表示したい
9
9
  ※対象はカスタム投稿の全記事です。
10
10
 
11
11
  **■現状**

1

コード部分を編集いたしました。何卒よろしくお願いいたします。

2017/04/16 07:26

投稿

junkinnet
junkinnet

スコア7

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,7 @@
1
1
  WP初心者です。どなたかご教示願えれば幸いです。
2
2
 
3
+ ※kei344様、ご指摘いただきありがとうございます!内容を編集いたしました。
4
+
3
5
  カスタムフィールドに入力した値の平均値や最小値を表示したいのですが、そういったことは可能でしょうか?
4
6
 
5
7
  **■やりたいこと**
@@ -11,23 +13,117 @@
11
13
  http://yahss.net/wordpress/587-custom_post_type_and_custom_field/
12
14
 
13
15
 
16
+ 現状は、function.phpに以下のように記述しており、
17
+ ```ここに言語を入力
14
- 上記コードの、
18
+ <?php
15
- $meta_arr['~~~'] = array('~~~','single');
19
+ //-----------------------------------------
16
- となっている所を、
20
+ // カスタム投稿タイプ
21
+ //-----------------------------------------
17
- $meta_arr['price'] = array('料金','single');
22
+ add_action( 'init', 'create_post_type' );
23
+ function create_post_type() {
24
+ register_post_type( 'store',
18
- として、
25
+ array(
26
+ 'labels' => array(
27
+ 'name' => __( 'ストア' ),
28
+ 'singular_name' => __( 'ストア' ),
29
+ 'all_items' => 'ストア一覧',
19
30
 
31
+ ),
32
+ 'public' => true,
33
+ 'menu_position' =>5,
34
+ 'has_archive' => true,
35
+ 'supports' => array('title','editor','thumbnail')
36
+ )
37
+ );
38
+
39
+ register_taxonomy(
40
+ 'store-area',
41
+ 'store',
42
+ array(
43
+ 'hierarchical' => true,
44
+ 'update_count_callback' => '_update_post_term_count',
45
+ 'label' => 'エリア',
46
+ 'singular_label' => 'エリア',
47
+ 'public' => true,
48
+ 'show_ui' => true
49
+ )
50
+ );
51
+ flush_rewrite_rules( true );
52
+ }
53
+
54
+
55
+ //-----------------------------------------
56
+ // カスタムフィールド
57
+ //-----------------------------------------
58
+ $meta_arr['price'] = array('価格','single');
59
+
60
+ /*** カスタムフィールドコンテンツの作り込み ***/
61
+ function my_meta_boxes() {
62
+
63
+ global $post, $meta_arr;
64
+
65
+ //metaの現在の登録値を取得(可変変数)
66
+ foreach($meta_arr as $meta => $meta_val) {
67
+ $true = ( $meta_val[1] == 'single' )? true: false;
68
+ $val = $meta.'Val';
69
+ $nam = $meta.'Nam';
70
+ $$nam = $meta_val[0];
71
+ $$val = get_post_meta( $post->ID, $meta, $true );
72
+ }
73
+
74
+ ?>
75
+
76
+ <!--価格-->
77
+ <p>
78
+ <?php echo $priceNam ?><br>
79
+ <input name="price" type="text" value="<?php echo $priceVal ?>" style="width:100%">
80
+ </p>
81
+
82
+ <?php
83
+ }
84
+
85
+ /*** 投稿画面にカスタムフィールドのセクションを追加 ***/
86
+ function create_meta_box() {
87
+
88
+ if ( function_exists('add_meta_box') )
89
+ add_meta_box( 'my-meta-boxes', 'ストア情報', 'my_meta_boxes', 'store', 'normal', 'high' );
90
+ }
91
+
92
+ /*** カスタムフィールド入力値の保存 ***/
93
+ function save_postdata( $post_id ) {
94
+
95
+ global $post, $meta_arr;
96
+ foreach($meta_arr as $meta => $arr) {
97
+ $true = ( $arr == 'single' )? true: false;
98
+
99
+ $meta_cur = get_post_meta($post_id, $meta, $true);
100
+ $meta_new = $_POST[$meta];
101
+
102
+ if( $meta_cur == "" && $meta_new != "") {
103
+ add_post_meta($post_id, $meta, $meta_new, true);
104
+ } elseif ( $meta_cur != $meta_new ) {
105
+ update_post_meta($post_id, $meta, $meta_new);
106
+ } elseif ( $meta_new == "" ) {
107
+ delete_post_meta($post_id, $meta, get_post_meta($post_id, $meta_cur, true));
108
+ }
109
+ }
110
+ }
111
+ add_action('admin_menu', 'create_meta_box');
112
+ add_action('save_post', 'save_postdata');
113
+ ```
114
+
20
115
  表示したい「~~~.php」のテンプレート上には、
21
116
 
22
- <?php
117
+ ```ここに言語を入力
23
118
  $price = get_post_meta( $post->ID, 'price', true );
24
119
  ?>
25
120
  <?php echo number_format($price); ?>
26
121
 
122
+ ```
27
123
  と、その値を表示しています。
28
124
 
29
125
 
30
- 例えば、カスタム投稿の記事を10個投稿したときに、記事1~記事10の「price」の値の平均値や最小値を表示したいのですが、
126
+ 例えば、カスタム投稿の記事を10個投稿したときに、記事1~記事10の「price」の値の平均値を表示したいのですが、
31
127
 
32
128
  そういったことは可能なのでしょうか?
33
129
  記述や方法など、ご教示願えたら幸いです。