Динамический вызов пользовательской страницы WordPress работает только на локальном хосте

Я использую WordPress с пользовательской страницей (ajax-handler), чтобы открывать каждый пост в простом модальном диалоге, но происходит нечто странное. Код отлично работает на моем локальном хосте, но когда он находится на сервере, каждый раз, когда я нажимаю на сообщение, чтобы открыть его, сервер возвращает ошибку 404 (не найдено).

Я последовал за этот учебник и вот мой код:

$('#content article').on('click', function(e){
var id = $(this).attr('rel');
$('<div id="popup"></div>').hide().appendTo('body').load('<?php echo home_url(); ?>/ajax-handler/?id='+id).modal({ });
});

Я уже пытался изменить путь без / до? и попробовал с «.php» в конце имени файла

Ни один из них не работает как localhost. Какие-нибудь мысли?

Большое спасибо!

0

Решение

На самом деле, я немного удивлен, что ваш код работал на localhost. Может быть, что-то делать с вашим .htaccess.

Стандартный способ сделать Ajax в WordPress — отправить запрос стандартному обработчику WP Ajax следующим образом:

$('#content article').on('click', function(e){
var id = $(this).attr('rel');
$('<div id="popup"></div>').hide().appendTo('body').load( '<?php echo admin_url('admin-ajax.php'); ?>, {id: id}).modal({ });
});

Затем вы добавляете действие для обработки вызова ajax. Если ваше приложение является интерфейсным приложением, как это выглядит, то это будет что-то вроде:

function ajax_handler() {
if ($_POST['id']) {
// Probably something like what you already have
}
}
add_action( 'wp_ajax_nopriv_my_action', 'ajax_handler' );
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]