web-dev-qa-db-fra.com

Comment récupérer le contenu (avec un identifiant spécifique) via ajax en cliquant sur une balise de lien

Je souhaite récupérer le contenu avec l'identifiant spécifique via la méthode de publication ajax.

Par exemple, si je clique sur une balise de lien ayant un identifiant de publication spécifique, le contenu de cet identifiant sera chargé dans post-data div.

Je suis très nouveau sur wp ajax et quelqu'un pourrait-il m'aider à atteindre cet objectif?

Voici mes codes
HTML une balise

<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 Action

   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();
   }

Je pense que quelque chose ne va pas avec mes codes, je viens d'obtenir la réponse 0.

1
Jamille

Je mettrais l'action dans les données de poste

$.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;
.....

Ensuite, utilisez $ _POST ['post_link'] dans votre PHP

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