Я использую 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. Какие-нибудь мысли?
Большое спасибо!
На самом деле, я немного удивлен, что ваш код работал на 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' );
Других решений пока нет …