回答編集履歴

3

動いたコードをメモ代わりに追記

2016/12/31 13:15

投稿

退会済みユーザー
test CHANGED
@@ -33,3 +33,379 @@
33
33
  **同じ問題で困っていた人のトピック**
34
34
 
35
35
  [https://buddypress.org/support/topic/bp_get_member_user_id-returns-false/](https://buddypress.org/support/topic/bp_get_member_user_id-returns-false/)
36
+
37
+
38
+
39
+ ###追記
40
+
41
+ ようやく動いた。
42
+
43
+ ####functions.php
44
+
45
+ ```PHP
46
+
47
+ function add_my_ajaxurl() {
48
+
49
+ ?>
50
+
51
+ <script>
52
+
53
+ var ajaxurl = '<?php echo admin_url( 'admin-ajax.php'); ?>';
54
+
55
+ </script>
56
+
57
+ <?php
58
+
59
+ }
60
+
61
+ add_action( 'wp_head', 'add_my_ajaxurl', 1 );
62
+
63
+
64
+
65
+ function GetMyToDo(){
66
+
67
+ if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ) {
68
+
69
+ while ( bp_members() ) {
70
+
71
+ bp_the_member();
72
+
73
+ global $wpdb,$bp;
74
+
75
+ $MyUserID = $bp->loggedin_user->id;
76
+
77
+ $MyToDo = $wpdb->get_results("
78
+
79
+ SELECT meta_value
80
+
81
+ FROM $wpdb->usermeta
82
+
83
+ WHERE user_id = $MyUserID
84
+
85
+ AND meta_key = 'ToDoList'
86
+
87
+ ", ARRAY_A );
88
+
89
+
90
+
91
+ foreach($MyToDo as $item) {
92
+
93
+ $MyToDoList[] = $item['meta_value'] ? $item['meta_value'] : "NULL";
94
+
95
+ }
96
+
97
+
98
+
99
+ $MyToDoList = join(",",$MyToDoList);
100
+
101
+ echo $MyToDoList;
102
+
103
+ die();
104
+
105
+ }
106
+
107
+ }
108
+
109
+ }
110
+
111
+ add_action( 'wp_ajax_GetMyToDo', 'GetMyToDo' );
112
+
113
+
114
+
115
+ function SaveMyToDo(){
116
+
117
+ if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ){
118
+
119
+ while ( bp_members() ){
120
+
121
+ bp_the_member();
122
+
123
+ global $wpdb,$bp;
124
+
125
+ $MyUserID = $bp->loggedin_user->id;
126
+
127
+ $memo = filter_input(INPUT_POST, 'memo');
128
+
129
+ $wpdb->insert($wpdb->usermeta,
130
+
131
+ array(
132
+
133
+ 'user_id' => $MyUserID,
134
+
135
+ 'meta_key' => 'ToDoList',
136
+
137
+ 'meta_value' => $memo
138
+
139
+ ),
140
+
141
+ array(
142
+
143
+ '%d',
144
+
145
+ '%s',
146
+
147
+ '%s'
148
+
149
+ )
150
+
151
+ );
152
+
153
+ }
154
+
155
+ }
156
+
157
+ }
158
+
159
+ add_action( 'wp_ajax_SaveMyToDo', 'SaveMyToDo' );
160
+
161
+
162
+
163
+ function DeleteMyToDo(){
164
+
165
+ if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ){
166
+
167
+ while ( bp_members() ){
168
+
169
+ bp_the_member();
170
+
171
+ global $wpdb,$bp;
172
+
173
+ $MyUserID = $bp->loggedin_user->id;
174
+
175
+ $memo = filter_input(INPUT_POST, 'memo');
176
+
177
+ var_dump($MyUserID);
178
+
179
+ var_dump($memo);
180
+
181
+ $wpdb->delete( $wpdb->usermeta,
182
+
183
+ array( 'user_id' => $MyUserID,
184
+
185
+ 'meta_key' => 'ToDoList',
186
+
187
+ 'meta_value' => $memo
188
+
189
+ ),
190
+
191
+ array(
192
+
193
+ '%d',
194
+
195
+ '%s',
196
+
197
+ '%s'
198
+
199
+ )
200
+
201
+ );
202
+
203
+ }
204
+
205
+ }
206
+
207
+ }
208
+
209
+ add_action( 'wp_ajax_DeleteMyToDo', 'DeleteMyToDo' );
210
+
211
+ ```
212
+
213
+ ####index.php
214
+
215
+ ```PHP
216
+
217
+ <?php
218
+
219
+ wp_head();
220
+
221
+ ?>
222
+
223
+ <style type="text/css">
224
+
225
+ #container{
226
+
227
+ margin: 0 auto;
228
+
229
+ width: 60%;
230
+
231
+ }
232
+
233
+ #memo{
234
+
235
+ width: 100%;
236
+
237
+ }
238
+
239
+ .content{
240
+
241
+ float: left;
242
+
243
+ width: 90%;
244
+
245
+ word-wrap: break-word;
246
+
247
+ }
248
+
249
+ h6{
250
+
251
+ color: red;
252
+
253
+ }
254
+
255
+ li{
256
+
257
+ list-style: decimal;
258
+
259
+ }
260
+
261
+ .MainWelcome{
262
+
263
+ }
264
+
265
+ .ExplainToDo{
266
+
267
+ text-align: center;
268
+
269
+ }
270
+
271
+ </style>
272
+
273
+ <script type="text/javascript">
274
+
275
+ jQuery(function() {
276
+
277
+ function MakeLi(){
278
+
279
+ jQuery.ajax({
280
+
281
+ type: 'POST',
282
+
283
+ url: ajaxurl,
284
+
285
+ data: { 'action' : 'GetMyToDo',},
286
+
287
+ success: function( response ){
288
+
289
+ var MyToDoList = response;
290
+
291
+ var MyToDo = MyToDoList.split(",");
292
+
293
+ jQuery.each(MyToDo, function() {
294
+
295
+ jQuery(".ToDo_Ul").prepend("<li class='todo'>" + this + "</li>");
296
+
297
+ });
298
+
299
+ }
300
+
301
+ });
302
+
303
+ }
304
+
305
+ MakeLi();
306
+
307
+
308
+
309
+ jQuery('#save').on('click', function(){
310
+
311
+ var memo = jQuery('#memo').val();
312
+
313
+ if(!memo) return;
314
+
315
+ jQuery.ajax({
316
+
317
+ type: 'POST',
318
+
319
+ url: ajaxurl,
320
+
321
+ data: {
322
+
323
+ 'action' : 'SaveMyToDo',
324
+
325
+ 'memo' : memo
326
+
327
+ },
328
+
329
+ success: function( response ){
330
+
331
+ jQuery(".ToDo_Ul").prepend("<li class='todo'>" + memo + "</li>");
332
+
333
+ jQuery('#memo').val('');
334
+
335
+ }
336
+
337
+ });
338
+
339
+ });
340
+
341
+
342
+
343
+ jQuery('.ToDo_Ul').on('click', '.todo', function(){
344
+
345
+ var item = this;
346
+
347
+ jQuery.ajax({
348
+
349
+ type: 'POST',
350
+
351
+ url: ajaxurl,
352
+
353
+ data: {
354
+
355
+ 'action' : 'DeleteMyToDo',
356
+
357
+ 'memo' : item.innerHTML
358
+
359
+ },
360
+
361
+ success: function( response ){
362
+
363
+ item.remove();
364
+
365
+ }
366
+
367
+ });
368
+
369
+ });
370
+
371
+ });
372
+
373
+ </script>
374
+
375
+
376
+
377
+
378
+
379
+ <div id="container">
380
+
381
+ <h2 class="ExplainToDo">続くToDoリスト</h2>
382
+
383
+ <h6 class="ExplainToDo">*クリックするとそのタスクは消えます。</h6>
384
+
385
+ <form action="" method="post">
386
+
387
+ <textarea id="memo" name="memo"></textarea>
388
+
389
+ <p>
390
+
391
+ <input type="button" id="save" value="保存">
392
+
393
+ <input type="button" id="clear" value="全消去">
394
+
395
+ </p>
396
+
397
+ </form>
398
+
399
+ <ul class="ToDo_Ul">
400
+
401
+
402
+
403
+ </ul>
404
+
405
+ </div>
406
+
407
+
408
+
409
+ <?php wp_footer(); ?>
410
+
411
+ ```

2

更に参考URL追記

2016/12/31 13:14

投稿

退会済みユーザー
test CHANGED
@@ -29,3 +29,7 @@
29
29
  [https://wpdocs.osdn.jp/%E3%83%AB%E3%83%BC%E3%83%97](https://wpdocs.osdn.jp/%E3%83%AB%E3%83%BC%E3%83%97)
30
30
 
31
31
 
32
+
33
+ **同じ問題で困っていた人のトピック**
34
+
35
+ [https://buddypress.org/support/topic/bp_get_member_user_id-returns-false/](https://buddypress.org/support/topic/bp_get_member_user_id-returns-false/)

1

参考URL追記

2016/12/30 06:18

投稿

退会済みユーザー
test CHANGED
@@ -9,3 +9,23 @@
9
9
  ?><pre><?php var_dump($MyUserID); ?></pre><?php
10
10
 
11
11
  ```
12
+
13
+
14
+
15
+ ###追記
16
+
17
+ **「BuddyPressのループ」に関する参考URL**
18
+
19
+ [https://codex.buddypress.org/developer/loops-reference/](https://codex.buddypress.org/developer/loops-reference/)
20
+
21
+ [https://codex.buddypress.org/developer/loops-reference/the-members-loop/](https://codex.buddypress.org/developer/loops-reference/the-members-loop/)
22
+
23
+ [https://codex.buddypress.org/developer/loops-reference/the-profile-fields-loop-bp_has_profile/](https://codex.buddypress.org/developer/loops-reference/the-profile-fields-loop-bp_has_profile/)
24
+
25
+
26
+
27
+ **「WordPressのループ」に関する参考URL**
28
+
29
+ [https://wpdocs.osdn.jp/%E3%83%AB%E3%83%BC%E3%83%97](https://wpdocs.osdn.jp/%E3%83%AB%E3%83%BC%E3%83%97)
30
+
31
+