質問編集履歴

6

エラーが解消したためその部分を削除致しました。

2019/02/27 02:13

投稿

waru
waru

スコア16

test CHANGED
File without changes
test CHANGED
@@ -211,21 +211,3 @@
211
211
  }
212
212
 
213
213
  ```
214
-
215
- その後、CHERRY様のご回答のように修正した結果、次のエラーでした。
216
-
217
- ```ここに言語を入力
218
-
219
- Warning: in_array() expects parameter 2 to be array,
220
-
221
- string given in
222
-
223
- /export/user/c/zjp_95167c/live_3798ac/var/wordpress/wp-content/themes/test-child/lib/functions.php
224
-
225
- on line 464
226
-
227
- ```
228
-
229
- スクリーンショットだとこうです。
230
-
231
- ![イメージ説明](1f9a921643892be698674029779daf39.jpeg)

5

ご回答についてのエラーを掲載致しました。

2019/02/27 02:13

投稿

waru
waru

スコア16

test CHANGED
File without changes
test CHANGED
@@ -211,3 +211,21 @@
211
211
  }
212
212
 
213
213
  ```
214
+
215
+ その後、CHERRY様のご回答のように修正した結果、次のエラーでした。
216
+
217
+ ```ここに言語を入力
218
+
219
+ Warning: in_array() expects parameter 2 to be array,
220
+
221
+ string given in
222
+
223
+ /export/user/c/zjp_95167c/live_3798ac/var/wordpress/wp-content/themes/test-child/lib/functions.php
224
+
225
+ on line 464
226
+
227
+ ```
228
+
229
+ スクリーンショットだとこうです。
230
+
231
+ ![イメージ説明](1f9a921643892be698674029779daf39.jpeg)

4

CHERRY様への追記を加筆致しました。

2019/02/27 01:51

投稿

waru
waru

スコア16

test CHANGED
File without changes
test CHANGED
@@ -96,7 +96,7 @@
96
96
 
97
97
 
98
98
 
99
- ###追記
99
+ ###追記(m6u様へ)
100
100
 
101
101
  m6u様からの追記依頼の件です。
102
102
 
@@ -131,3 +131,83 @@
131
131
  </div>
132
132
 
133
133
  ```
134
+
135
+ ###追記(CHERRY様へ)
136
+
137
+ CHERRY様からの追記依頼の件です。
138
+
139
+ カスタムフィールドを定義している部分のコードになります。
140
+
141
+ ```php
142
+
143
+ add_action( 'admin_menu', 'add_meta_field' );
144
+
145
+ function add_meta_field() {
146
+
147
+ add_meta_box( 'checkbox', 'checkbox', 'create_checkbox', 'custom', 'side' );
148
+
149
+ }
150
+
151
+
152
+
153
+ function create_checkbox() {
154
+
155
+ $keyname = 'checkbox';
156
+
157
+ global $post;
158
+
159
+ $get_value = get_post_meta( $post->ID, $keyname, true );
160
+
161
+ $data = ['check1', 'check2'];
162
+
163
+ wp_nonce_field( 'action-' . $keyname, 'nonce-' . $keyname );
164
+
165
+ foreach( $data as $d ) {
166
+
167
+ $checked = '';
168
+
169
+ if( $d === $get_value ) $checked = ' checked';
170
+
171
+ echo '<label><input style="" type="checkbox" name="' . $keyname . '" value="' . $d . '"' . $checked . '>' . $d . '</label>';
172
+
173
+ }
174
+
175
+ }
176
+
177
+
178
+
179
+ add_action( 'save_post', 'save_meta_field' );
180
+
181
+ function save_meta_field( $post_id ) {
182
+
183
+ $custom_fields = [
184
+
185
+ 'checkxox',
186
+
187
+ ];
188
+
189
+ foreach( $custom_fields as $d ) {
190
+
191
+ if ( isset( $_POST['nonce-' . $d] ) && $_POST['nonce-' . $d] ) {
192
+
193
+ if( check_admin_referer( 'action-' . $d, 'nonce-' . $d ) ) {
194
+
195
+ if( isset( $_POST[$d] ) && $_POST[$d] ) {
196
+
197
+ update_post_meta( $post_id, $d, $_POST[$d] );
198
+
199
+ }else{
200
+
201
+ update_post_meta( $post_id, $d, '' );
202
+
203
+ }
204
+
205
+ }
206
+
207
+ }
208
+
209
+ }
210
+
211
+ }
212
+
213
+ ```

3

foreach版を加筆致しました

2019/02/27 01:10

投稿

waru
waru

スコア16

test CHANGED
File without changes
test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  ```php
22
22
 
23
- $check_get = esc_html( $_POST['check_get'] );// check1,check2 が入ります
23
+ $check_get = esc_html( $_POST['check_get'] ); // check1,check2 が入ります
24
24
 
25
25
  $check_arr = explode(",", $check_get); // それを配列にします
26
26
 
@@ -42,9 +42,35 @@
42
42
 
43
43
 
44
44
 
45
+ ###foreachだと1つだけチェックできる
46
+
47
+ ちなみに下記のようにforeachを使うと、check2 だけにチェックが入ります
48
+
49
+ ```php
50
+
51
+ $check_get = esc_html( $_POST['check_get'] ); // check1,check2 が入ります
52
+
53
+ $check_arr = explode(",", $check_get); // それを配列にします
54
+
55
+ foreach ($check_arr as $check) {
56
+
57
+ update_post_meta($id, 'checkbox', $check); // check2 だけにチェックが入ります
58
+
59
+ }
60
+
61
+ ```
62
+
63
+ 下図のようになります。
64
+
65
+ ![イメージ説明](c67f3f018659b2e71cd40f9d1233b90c.png)
66
+
67
+
68
+
69
+
70
+
45
71
  ###ラジオボタンはできる
46
72
 
47
- ちなみにラジオボタンだとできます。
73
+ あとラジオボタンだとできます。
48
74
 
49
75
  ```php
50
76
 

2

追記のコードの誤字を訂正致しました。

2019/02/27 01:02

投稿

waru
waru

スコア16

test CHANGED
File without changes
test CHANGED
@@ -96,9 +96,9 @@
96
96
 
97
97
  <input type="hidden" name="_wp_http_referer" value="/wp-admin/post.php?post=47&amp;action=edit">
98
98
 
99
- <label><input style="" type="checkbox" name="checkbox" value="comment">check1</label>
99
+ <label><input style="" type="checkbox" name="checkbox" value="check1">check1</label>
100
100
 
101
- <label><input style="" type="checkbox" name="checkbox" value="reply">check2</label>
101
+ <label><input style="" type="checkbox" name="checkbox" value="check2">check2</label>
102
102
 
103
103
  </div>
104
104
 

1

追記のご依頼に対応致しました。

2019/02/26 07:09

投稿

waru
waru

スコア16

test CHANGED
File without changes
test CHANGED
@@ -67,3 +67,41 @@
67
67
  どうすればチェックできるようになるか、原因や対策などを知りたいと思い質問させて頂きました。
68
68
 
69
69
  どうぞ宜しくお願い致します。
70
+
71
+
72
+
73
+ ###追記
74
+
75
+ m6u様からの追記依頼の件です。
76
+
77
+ チェックボックスを表示している箇所(上記の画像1枚目の箇所)の、webブラウザ上でのhtmlソースになります。
78
+
79
+ ```html
80
+
81
+ <div id="checkbox" class="postbox ">
82
+
83
+ <button type="button" class="handlediv" aria-expanded="true">
84
+
85
+ <span class="screen-reader-text">パネルを閉じる: checkbox</span>
86
+
87
+ <span class="toggle-indicator" aria-hidden="true"></span>
88
+
89
+ </button>
90
+
91
+ <h2 class="hndle ui-sortable-handle"><span>checkbox</span></h2>
92
+
93
+ <div class="inside">
94
+
95
+ <input type="hidden" id="nonce-checkbox" name="nonce-checkbox" value="1859407a37">
96
+
97
+ <input type="hidden" name="_wp_http_referer" value="/wp-admin/post.php?post=47&amp;action=edit">
98
+
99
+ <label><input style="" type="checkbox" name="checkbox" value="comment">check1</label>
100
+
101
+ <label><input style="" type="checkbox" name="checkbox" value="reply">check2</label>
102
+
103
+ </div>
104
+
105
+ </div>
106
+
107
+ ```