Загрузить сообщение внутри div с помощью AJAX в WordpressPhp

Кемеровские программисты php общаются здесь
Anonymous
Загрузить сообщение внутри div с помощью AJAX в Wordpress

Сообщение Anonymous »

Я создаю веб-сайт в Wordpress. Продолжая, я хотел бы загружать сообщения (из моего пользовательского типа сообщения «проект») динамически с помощью AJAX внутри div .js-panel-content, нажимая кнопку с тем же идентификатором, что и загруженное сообщение.
Проблема в том, что при нажатии кнопки загружаются не сообщения, запрошенные по идентификатору, а все сообщения моего пользовательского типа сообщений.
Я пытался распечатать идентификатор сообщения через AJAX, чтобы проверить, правильно ли загружен идентификатор. Я сделал это, заменив строку PanelContent.innerHTML = data; на PanelContent.innerHTML = post_id; В результате идентификатор не определен.
HTML для отображения div и цикл PHP для отображения списка кнопок

Код: Выделить всё


wp-admin/admin-ajax.php'>



JS

Код: Выделить всё

const loadPanelBtn = document.querySelectorAll('.js-btn-load-post');
const ajax_url = panel.dataset.ajaxUrl;

var i;
for( i = 0; i < loaderPanelBtn.length; i++ ){
loaderPanelBtn[i].addEventListener('click', function(e){
e.preventDefault();

let post_id = this.dataset.id;
const panelContent = document.querySelector(".js-panel-content");
const data = new FormData();

data.append( 'action', 'load_panel' );
data.append( 'post_id', post_id );

fetch(ajax_url, {
method: "POST",
body: data
})
.then((response) => response.text())
.then((data) => {
if (data) {

panelContent.innerHTML = data;

}
})
.catch((error) => {
});
});
};
Обработчик AJAX

Код: Выделить всё

function load_panel_content() {

$args = array(
'p' => $_POST['post_id'],
'post_type' => 'project'
);

$query = new WP_Query( $args );

while( $query->have_posts() ) : $query->the_post();

get_template_part( 'template-parts/content', 'post' );

endwhile;

wp_die();
}
add_action ( 'wp_ajax_nopriv_load_panel', 'load_panel_content' );
add_action ( 'wp_ajax_load_panel', 'load_panel_content' );
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/798 ... -wordpress

Вернуться в «Php»