@rvitalia

Почему может не работать /wp-admin/admin-ajax.php на определенной странице?

Делаю фильтрацию по категориям. На других страницах сайта уже делал подгрузки по ajaх и все работало. А вот на странице блога получаю 403 ошибку и все тут....

Код:
ajax со страницы:
jQuery(document).ready(function ($) {
    $('.blog_filters a').on('click', function (e) {
        e.preventDefault();
        var category = $(this).attr('href').split('category/')[1] || '';

        $.ajax({
            url: my_ajax_object.ajax_url,
            type: 'post',
            data: {
                action: 'filter_posts',
                category: category,
                nonce: my_ajax_object.nonce
            },
            success: function (response) {
                $('article').html(response);
            },
            error: function (jqXHR, textStatus, errorThrown) {
                console.error('AJAX Error:', {
                    jqXHR: jqXHR,
                    textStatus: textStatus,
                    errorThrown: errorThrown
                });
            }
        });
    });
});


дальше в functions .php регистрирую скрипт и wp_localize

wp_enqueue_script('custom-js', get_template_directory_uri() . '/assets/js/blog.custom.js', array("jquery"), null, true);
        wp_localize_script('custom-js', 'my_ajax_object', array(
            'ajax_url' => admin_url('admin-ajax.php'),
            'nonce' => wp_create_nonce('filter_posts_nonce')
        ));


Остальное как я понимаю нет смысла описывать, так как при запросе сразу получаю wp-admin/admin-ajax.php 403 (Forbidden)

Из консоли вижу запрос который отправляется:
action
: 
"filter_posts"
category
: 
"opinion-articles/"
nonce
: 
"1f33cd4167"
что соответствует filter_posts - функция для подгрузки, opinion-articles -категория, ну и последняя - код защиты.... >Tp него тоже не работает к слову.

Заранее спасибо за подсказки
  • Вопрос задан
  • 144 просмотра
Пригласить эксперта
Ответы на вопрос 1
@berdnikovroman
Попробуйте убрать nonce вообще, будет ли работать? И зарегистрировать ajax через wp_ajax_nopriv_ и wp_ajax_ (один для авторизованных пользователей, другой для не авторизованных)
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы