質問編集履歴

2

文言の編集

2017/04/16 07:26

投稿

junkinnet
junkinnet

スコア7

test CHANGED
File without changes
test CHANGED
@@ -6,13 +6,13 @@
6
6
 
7
7
 
8
8
 
9
- カスタムフィールドに入力した値の平均値や最小値を表示したいのですが、そういったことは可能でしょうか?
9
+ カスタムフィールドに入力した値の平均値を表示したいのですが、そういったことは可能でしょうか?
10
10
 
11
11
 
12
12
 
13
13
  **■やりたいこと**
14
14
 
15
- 特定のカスタムフィールドに入力した値の、平均値・最小値を表示したい
15
+ 特定のカスタムフィールドに入力した値の、平均値を表示したい
16
16
 
17
17
  ※対象はカスタム投稿の全記事です。
18
18
 

1

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

2017/04/16 07:26

投稿

junkinnet
junkinnet

スコア7

test CHANGED
File without changes
test CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
 
4
4
 
5
+ ※kei344様、ご指摘いただきありがとうございます!内容を編集いたしました。
6
+
7
+
8
+
5
9
  カスタムフィールドに入力した値の平均値や最小値を表示したいのですが、そういったことは可能でしょうか?
6
10
 
7
11
 
@@ -24,15 +28,201 @@
24
28
 
25
29
 
26
30
 
31
+ 現状は、function.phpに以下のように記述しており、
32
+
33
+ ```ここに言語を入力
34
+
27
- 上記コードの、
35
+ <?php
36
+
28
-
37
+ //-----------------------------------------
38
+
39
+ // カスタム投稿タイプ
40
+
41
+ //-----------------------------------------
42
+
43
+ add_action( 'init', 'create_post_type' );
44
+
45
+ function create_post_type() {
46
+
47
+ register_post_type( 'store',
48
+
49
+ array(
50
+
51
+ 'labels' => array(
52
+
53
+ 'name' => __( 'ストア' ),
54
+
55
+ 'singular_name' => __( 'ストア' ),
56
+
57
+ 'all_items' => 'ストア一覧',
58
+
59
+
60
+
61
+ ),
62
+
63
+ 'public' => true,
64
+
65
+ 'menu_position' =>5,
66
+
67
+ 'has_archive' => true,
68
+
29
- $meta_arr['~~~'] = array('~~~','single');
69
+ 'supports' => array('title','editor','thumbnail')
70
+
30
-
71
+ )
72
+
73
+ );
74
+
75
+
76
+
77
+ register_taxonomy(
78
+
79
+ 'store-area',
80
+
81
+ 'store',
82
+
31
- となっている所を、
83
+ array(
84
+
32
-
85
+ 'hierarchical' => true,
86
+
87
+ 'update_count_callback' => '_update_post_term_count',
88
+
89
+ 'label' => 'エリア',
90
+
91
+ 'singular_label' => 'エリア',
92
+
93
+ 'public' => true,
94
+
95
+ 'show_ui' => true
96
+
97
+ )
98
+
99
+ );
100
+
101
+ flush_rewrite_rules( true );
102
+
103
+ }
104
+
105
+
106
+
107
+
108
+
109
+ //-----------------------------------------
110
+
111
+ // カスタムフィールド
112
+
113
+ //-----------------------------------------
114
+
33
- $meta_arr['price'] = array('料金','single');
115
+ $meta_arr['price'] = array('価格','single');
116
+
117
+
118
+
34
-
119
+ /*** カスタムフィールドコンテンツの作り込み ***/
120
+
121
+ function my_meta_boxes() {
122
+
123
+
124
+
125
+ global $post, $meta_arr;
126
+
127
+
128
+
129
+ //metaの現在の登録値を取得(可変変数)
130
+
131
+ foreach($meta_arr as $meta => $meta_val) {
132
+
133
+ $true = ( $meta_val[1] == 'single' )? true: false;
134
+
135
+ $val = $meta.'Val';
136
+
137
+ $nam = $meta.'Nam';
138
+
139
+ $$nam = $meta_val[0];
140
+
141
+ $$val = get_post_meta( $post->ID, $meta, $true );
142
+
143
+ }
144
+
145
+
146
+
35
- として、
147
+ ?>
148
+
149
+
150
+
151
+ <!--価格-->
152
+
153
+ <p>
154
+
155
+ <?php echo $priceNam ?><br>
156
+
157
+ <input name="price" type="text" value="<?php echo $priceVal ?>" style="width:100%">
158
+
159
+ </p>
160
+
161
+
162
+
163
+ <?php
164
+
165
+ }
166
+
167
+
168
+
169
+ /*** 投稿画面にカスタムフィールドのセクションを追加 ***/
170
+
171
+ function create_meta_box() {
172
+
173
+
174
+
175
+ if ( function_exists('add_meta_box') )
176
+
177
+ add_meta_box( 'my-meta-boxes', 'ストア情報', 'my_meta_boxes', 'store', 'normal', 'high' );
178
+
179
+ }
180
+
181
+
182
+
183
+ /*** カスタムフィールド入力値の保存 ***/
184
+
185
+ function save_postdata( $post_id ) {
186
+
187
+
188
+
189
+ global $post, $meta_arr;
190
+
191
+ foreach($meta_arr as $meta => $arr) {
192
+
193
+ $true = ( $arr == 'single' )? true: false;
194
+
195
+
196
+
197
+ $meta_cur = get_post_meta($post_id, $meta, $true);
198
+
199
+ $meta_new = $_POST[$meta];
200
+
201
+
202
+
203
+ if( $meta_cur == "" && $meta_new != "") {
204
+
205
+ add_post_meta($post_id, $meta, $meta_new, true);
206
+
207
+ } elseif ( $meta_cur != $meta_new ) {
208
+
209
+ update_post_meta($post_id, $meta, $meta_new);
210
+
211
+ } elseif ( $meta_new == "" ) {
212
+
213
+ delete_post_meta($post_id, $meta, get_post_meta($post_id, $meta_cur, true));
214
+
215
+ }
216
+
217
+ }
218
+
219
+ }
220
+
221
+ add_action('admin_menu', 'create_meta_box');
222
+
223
+ add_action('save_post', 'save_postdata');
224
+
225
+ ```
36
226
 
37
227
 
38
228
 
@@ -40,7 +230,7 @@
40
230
 
41
231
 
42
232
 
43
- <?php
233
+ ```ここに言語を入力
44
234
 
45
235
  $price = get_post_meta( $post->ID, 'price', true );
46
236
 
@@ -50,13 +240,15 @@
50
240
 
51
241
 
52
242
 
243
+ ```
244
+
53
245
  と、その値を表示しています。
54
246
 
55
247
 
56
248
 
57
249
 
58
250
 
59
- 例えば、カスタム投稿の記事を10個投稿したときに、記事1~記事10の「price」の値の平均値や最小値を表示したいのですが、
251
+ 例えば、カスタム投稿の記事を10個投稿したときに、記事1~記事10の「price」の値の平均値を表示したいのですが、
60
252
 
61
253
 
62
254