回答編集履歴

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

miz

miz score 3335

2016/12/31 22:14  投稿

`$MyUserID`に値は入ってますか?
`bp_get_member_user_id()`はループの中で使う必要のある関数ですが、ループの中で使われていますか?
```PHP
$MyUserID = bp_get_member_user_id();
?><pre><?php var_dump($MyUserID); ?></pre><?php
```
###追記
**「BuddyPressのループ」に関する参考URL**
[https://codex.buddypress.org/developer/loops-reference/](https://codex.buddypress.org/developer/loops-reference/)
[https://codex.buddypress.org/developer/loops-reference/the-members-loop/](https://codex.buddypress.org/developer/loops-reference/the-members-loop/)
[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/)
**「WordPressのループ」に関する参考URL**
[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)
**同じ問題で困っていた人のトピック**
[https://buddypress.org/support/topic/bp_get_member_user_id-returns-false/](https://buddypress.org/support/topic/bp_get_member_user_id-returns-false/)
[https://buddypress.org/support/topic/bp_get_member_user_id-returns-false/](https://buddypress.org/support/topic/bp_get_member_user_id-returns-false/)
###追記
ようやく動いた。
####functions.php
```PHP
function add_my_ajaxurl() {
?>
   <script>
       var ajaxurl = '<?php echo admin_url( 'admin-ajax.php'); ?>';
   </script>
<?php
}
add_action( 'wp_head', 'add_my_ajaxurl', 1 );
function GetMyToDo(){
   if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ) {
       while ( bp_members() ) {
           bp_the_member();
           global $wpdb,$bp;
           $MyUserID = $bp->loggedin_user->id;
           $MyToDo = $wpdb->get_results("
                       SELECT meta_value
                       FROM $wpdb->usermeta
                       WHERE user_id = $MyUserID
                       AND meta_key = 'ToDoList'
           ", ARRAY_A );
           
           foreach($MyToDo as $item) {
               $MyToDoList[] = $item['meta_value'] ? $item['meta_value'] : "NULL";
           }
           
           $MyToDoList = join(",",$MyToDoList);
           echo $MyToDoList;
           die();
       }
   }
}
add_action( 'wp_ajax_GetMyToDo', 'GetMyToDo' );
function SaveMyToDo(){
   if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ){
       while ( bp_members() ){
           bp_the_member();
           global $wpdb,$bp;
           $MyUserID = $bp->loggedin_user->id;
           $memo = filter_input(INPUT_POST, 'memo');
           $wpdb->insert($wpdb->usermeta,
               array(
                   'user_id' => $MyUserID,
                   'meta_key' => 'ToDoList',
                   'meta_value' => $memo
               ),
               array(
                   '%d',
                   '%s',
                   '%s'
               )
           );
       }
   }
}
add_action( 'wp_ajax_SaveMyToDo', 'SaveMyToDo' );
function DeleteMyToDo(){
   if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ){
       while ( bp_members() ){
           bp_the_member();
           global $wpdb,$bp;
           $MyUserID = $bp->loggedin_user->id;
           $memo = filter_input(INPUT_POST, 'memo');
           var_dump($MyUserID);
           var_dump($memo);
           $wpdb->delete( $wpdb->usermeta,
               array( 'user_id' => $MyUserID,
                   'meta_key' => 'ToDoList',
                   'meta_value' => $memo
               ),
               array(
                   '%d',
                   '%s',
                   '%s'
               )
           );
       }
   }
}
add_action( 'wp_ajax_DeleteMyToDo', 'DeleteMyToDo' );
```
####index.php
```PHP
<?php
   wp_head();
?>
<style type="text/css">
   #container{
       margin: 0 auto;
       width: 60%;
   }
   #memo{
       width: 100%;
   }
   .content{
       float: left;
       width: 90%;
       word-wrap: break-word;
   }
   h6{
       color: red;
   }
   li{
       list-style: decimal;
   }
   .MainWelcome{
   }
   .ExplainToDo{
       text-align: center;
   }
</style>
<script type="text/javascript">
jQuery(function() {
   function MakeLi(){
       jQuery.ajax({
           type: 'POST',
           url: ajaxurl,
           data: { 'action' : 'GetMyToDo',},
           success: function( response ){
               var MyToDoList = response;
               var MyToDo = MyToDoList.split(",");
               jQuery.each(MyToDo, function() {
                   jQuery(".ToDo_Ul").prepend("<li class='todo'>" + this + "</li>");
               });
           }
       });
   }
   MakeLi();
   jQuery('#save').on('click', function(){
       var memo = jQuery('#memo').val();
       if(!memo) return;
       jQuery.ajax({
           type: 'POST',
           url: ajaxurl,
           data: {
               'action' : 'SaveMyToDo',
               'memo' : memo
           },
           success: function( response ){
               jQuery(".ToDo_Ul").prepend("<li class='todo'>" + memo + "</li>");
               jQuery('#memo').val('');
           }
       });
   });
   jQuery('.ToDo_Ul').on('click', '.todo', function(){
       var item = this;
       jQuery.ajax({
           type: 'POST',
           url: ajaxurl,
           data: {
               'action' : 'DeleteMyToDo',
               'memo' : item.innerHTML
           },
           success: function( response ){
               item.remove();
           }
       });
   });
});
</script>
<div id="container">
   <h2 class="ExplainToDo">続くToDoリスト</h2>
   <h6 class="ExplainToDo">*クリックするとそのタスクは消えます。</h6>
   <form action="" method="post">
       <textarea id="memo" name="memo"></textarea>
       <p>
           <input type="button" id="save" value="保存">
           <input type="button" id="clear" value="全消去">
       </p>
   </form>
   <ul class="ToDo_Ul">
   </ul>
</div>
<?php wp_footer(); ?>
```
2 更に参考URL追記

miz

miz score 3335

2016/12/30 15:18  投稿

`$MyUserID`に値は入ってますか?
`bp_get_member_user_id()`はループの中で使う必要のある関数ですが、ループの中で使われていますか?
```PHP
$MyUserID = bp_get_member_user_id();
?><pre><?php var_dump($MyUserID); ?></pre><?php
```
###追記
**「BuddyPressのループ」に関する参考URL**
[https://codex.buddypress.org/developer/loops-reference/](https://codex.buddypress.org/developer/loops-reference/)
[https://codex.buddypress.org/developer/loops-reference/the-members-loop/](https://codex.buddypress.org/developer/loops-reference/the-members-loop/)
[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/)
**「WordPressのループ」に関する参考URL**
[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)
**同じ問題で困っていた人のトピック**
[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追記

miz

miz score 3335

2016/12/30 15:16  投稿

`$MyUserID`に値は入ってますか?
`bp_get_member_user_id()`はループの中で使う必要のある関数ですが、ループの中で使われていますか?
```PHP
$MyUserID = bp_get_member_user_id();
?><pre><?php var_dump($MyUserID); ?></pre><?php
```
```
###追記
**「BuddyPressのループ」に関する参考URL**
[https://codex.buddypress.org/developer/loops-reference/](https://codex.buddypress.org/developer/loops-reference/)
[https://codex.buddypress.org/developer/loops-reference/the-members-loop/](https://codex.buddypress.org/developer/loops-reference/the-members-loop/)
[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/)
**「WordPressのループ」に関する参考URL**
[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)

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る