Come recuperare il contenuto (con un ID specifico) via AJAX cliccando su un link

30 ott 2017, 18:25:27
Visualizzazioni: 14K
Voti: 2

Voglio recuperare il contenuto con uno specifico ID tramite il metodo POST di AJAX.

Ad esempio, se clicco su un tag link che ha un ID specifico di un post, il contenuto di quell'ID verrà caricato nel div post-data.

Sono nuovo ad AJAX in WordPress e qualcuno potrebbe aiutarmi a realizzare questo?

Ecco i miei codici
HTML a tag

<a id="<?php the_ID(); ?>" href="#">Questo è un link</a>
<!-- il contenuto -->
<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 = $_POST['post_link'];
   echo get_the_content($post_link);
   die();
   }

Penso che ci sia qualcosa di sbagliato nei miei codici, ottengo solo la risposta 0.

1
Commenti

l'"azione" deve andare nei dati: "data" : {"post_link" : post_ID, "action" : "my_custom_data"}

mmm mmm
30 ott 2017 18:46:54
Tutte le risposte alla domanda 1
0

Metterei l'azione nei dati del post

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

Poi usa $_POST['post_link'] nel tuo codice PHP

   function my_custom_data(){
       $post_link = $_POST['post_link'];
   echo get_the_content($post_link);
   die();
   }
30 ott 2017 18:49:10