web-dev-qa-db-ja.com

リンクタグをクリックしてajaxでコンテンツを(特定のIDで)取得する方法

私はAjaxのポストメソッドを介して特定のIDを持つコンテンツを取得したいです。

たとえば、特定の投稿IDを持つリンクタグをクリックすると、そのIDの内容が post-data divにロードされます。

私はwp ajaxが初めてなので、誰かが私を助けてくれるでしょうか。

これが私のコードです
HTMLタグ

<a id="<?php the_ID(); ?>" href="#">This is link</a> 
<!-- the content -->
<div id="post-data"></div>

Jquery Ajax

    $("a").click(function (event) {
    var post_ID = $(this).attr('id');
    $.ajax({
        url: "/wp-admin/admin-ajax.php",
        type: "POST",
        action: "my_custom_data",
        data: {post_link: post_ID},
        success: function (response) {
            console.log(response);
            $('#post-data').append(response);
        }
    });
    event.stopImmediatePropagation();
    event.preventDefault();
    return false;
    });

WPアクション

   add_action('wp_ajax_my_custom_data', 'my_custom_data');
   add_action('wp_ajax_nopriv_my_custom_data', 'my_custom_data');

   function my_custom_data(){
   $post_link = data['post_link'];
   echo get_the_content($post_link);
   die();
   }

私は自分のコードに何か問題があると思います、私はただ応答0を得ます。

1
Jamille

投稿データにアクションを入れる

$.ajax({
  url: "/wp-admin/admin-ajax.php",
  type:"POST",
       data: { 
       action: "my_custom_data",
       post_link: post_ID
},
success: function (response) {
        console.log(response);
        $('#post-data').append(response);
    }
});
   return false;
.....

それならPHPで$ _POST ['post_link']を使ってください。

   function my_custom_data(){
       $post_link = $_POST['post_link'];
   echo get_the_content($post_link);
   die();
   }
0
Jim-miraidev