Как получить контент (с определенным ID) через AJAX при клике на ссылку
30 окт. 2017 г., 18:25:27
Просмотры: 14K
Голосов: 2
Я хочу получить контент с определенным ID через AJAX методом POST.
Например, при клике на ссылку, содержащую ID поста, контент этого поста должен загрузиться в div с id post-data.
Я новичок в работе с AJAX в WordPress и хотел бы получить помощь в реализации этого функционала.
Вот мой код:
HTML-ссылка
<a id="<?php the_ID(); ?>" href="#">Это ссылка</a>
<!-- контейнер для контента -->
<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",
data: {
action: "my_custom_data", // <-- Исправлено: параметр action должен быть внутри 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']; // <-- Исправлено: используем $_POST вместо data
echo get_the_content($post_link);
wp_die(); // <-- Рекомендуется использовать wp_die() вместо die()
}
Кажется, в моем коде есть ошибки, так как я получаю только ответ 0.
Комментарии
Все ответы на вопрос
1
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;
.....
Затем используйте $_POST['post_link'] в вашем PHP коде
function my_custom_data(){
$post_link = $_POST['post_link'];
echo get_the_content($post_link);
die();
}

DesignMonkeyJim
349
30 окт. 2017 г. 18:49:10
Похожие вопросы
16
ответов
1
ответов