私は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を得ます。
投稿データにアクションを入れる
$.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();
}