avearthasz
Ответы в темах
-
Форум: Проблемы и решения
Тема: Как сделать редирект?Под основной я имею в виду wp-content/themes/и моя тема
Форум: Проблемы и решения
Тема: Admin-ajax 400 и возвращяет 0Большое спасибо, все работает!
Форум: Проблемы и решения
Тема: Admin-ajax 400 и возвращяет 0Вроде все правильно
Форум: Проблемы и решения
Тема: Admin-ajax 400 и возвращяет 0У меня почему-то эта функция игнорируется. Но, если написать /wp-admin/admin-ajax.php?action=loadmore то все возвращает (в чем может быть проблема?)
P.S Это если этот адрес задать для отправки аяксом данных
- Ответ изменён 3 года, 9 месяцев назад пользователем avearthasz.
Форум: Проблемы и решения
Тема: Admin-ajax 400 и возвращяет 0Код немного был переделан, ибо данные отправлялись неккоректно с помощью метода serialize, я сделал через json_encode
const post_data = <?php echo json_encode($custom_query->query_vars); ?>;
Через обработчик js я отправляю в виде json
xhr.send(JSON.stringify(postData));
Все данные отправляются как нужно, но я нашел проблему. Функция которая должна обрабатывать запрос (которая находится в functions.php) попросту не работает. Там нельзя сделать дебагинг (var_dump, echo) да вообще все не работает.
Форум: Проблемы и решения
Тема: Admin-ajax 400 и возвращяет 0Здравствуйте, вот мои коды:
Это в functions.php:
function loadmore_get_posts(){ $args = unserialize(stripslashes($_POST['query'])); $args['paged'] = $_POST['page'] + 1; // следующая страница $args['post_status'] = 'publish'; query_posts($args); // если посты есть if(have_posts()) : while(have_posts()): the_post(); the_post();?> <h2><?php the_title();?></h2> <?php the_content();?> <?php //get_template_part('content-template'); endwhile; endif; die(); } add_action('wp_ajax_loadmore', 'loadmore_get_posts'); add_action('wp_ajax_nopriv_loadmore', 'loadmore_get_posts');
Это в js-скрипте:
const loadMoreBtn = document.querySelector('#loadmore'); window.addEventListener('load', function () { loadMoreBtn.addEventListener('click', function () { const customAction = 'loadmore'; const sendType = 'POST'; const postData = { action: customAction, query: post_data, page: current_page, } const xhr = new XMLHttpRequest(); xhr.open(sendType, ajaxurl); xhr.addEventListener('success', function () { console.log('1'); }) xhr.send(postData); }) })
Это на нужной мне странице, где и выводятся посты:
<script> const ajaxurl = '<?php echo admin_url('admin-ajax.php') ?>'; const current_page = <?php echo $paged ?>; const max_pages = <?php echo $custom_query->max_num_pages ?>; const post_data = '<?php echo serialize($custom_query->query_vars); ?>'; </script> <?php if ($custom_query->max_num_pages > 1 ) : ?> <button id="loadmore" class="btn">Load More</button> <?php endif; ?>
- Ответ изменён 3 года, 9 месяцев назад пользователем avearthasz.