viksnamax
@viksnamax
All-in-One

Как выводить посты посредством AJAX WordPress?

Когда пользователь на сайте уже пикнул на пост на странице Новости у него открывается сам пост, мне нужно сделать так: пользователь прокручивает в конец поста, после чего загружается следующий пост на той же странице. Пока что я сделал, отправку запроса на сервер при помощи ajax (то есть в function.php есть рабочий обработчик). Подскажите как мне на стороне сервера получить следующий пост?
Знаю, что есть функция get_next_post(), но она не работает в function.php, потому что глобальная переменная $post пуста и методу как бы не отчего отталкиваться.
Увеличить ID на 1 тоже не вариант, так как существую различные темы на сайте и , например, посты с тегом новости явно идут не по порядку, в плане 1, 2, 3, 4...

Единственная идея, которая мне приходит в голову это: отправить в обработчик текущий ID и category, потом сделать запрос через WP_Query по category, после получения результата посредством цикла и условия получить следующий пост основываясь на ID.
  • Вопрос задан
  • 32 просмотра
Пригласить эксперта
Ответы на вопрос 1
@weart
ID поста прекрасно можно получить внутри ajax функции.
Один из способов из php > js > php

Я думаю, вы знаете, куда вставлять этот код:

$data = array(
	'ajaxUrl' => admin_url( 'admin-ajax.php' ),
	'postID' => get_the_ID(),
);
wp_localize_script( 'main', 'php_data', $data );


И в js его получаете вот так:

let postID = php_data.postID;

..
data: {
    post_id: postID
}

..


B в ajax соответственно

$post_id = $_POST['post_id'] );
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы