Ошибка "ajax_custom не определена" при использовании wp_localize_script в jQuery
15 июл. 2013 г., 10:15:54
Просмотры: 14.8K
Голосов: 3
Я пытаюсь загрузить запись с помощью Ajax.
functions.php
:
function my_action_callback() {
wp_localize_script('jscustom', 'ajax_custom', array(
'ajaxurl' => admin_url('admin-ajax.php')
));
wp_enqueue_script('jscustom');
}
add_action('wp_ajax_my_action', 'my_action_callback');
jQuery код в custom.js
:
jQuery(window).load(function() {
var morebutton = jQuery('#load-more'),
archive = morebutton.rel,
deftext = morebutton.text(),
page = 1;
morebutton.click(function(e){
e.preventDefault();
page++;
morebutton.text(ajax_custom.loading);
jQuery.post(ajax_custom.ajaxurl, {action:'load_more', page:page, archive:archive}, function(data){...
Когда я нажимаю кнопку "загрузить еще", я получаю ошибку:
ReferenceError: ajax_custom is not defined (ajax_custom не определена)
В чем проблема?
Все ответы на вопрос
1
0
wp_localize_script
следует вызывать ПОСЛЕ wp_enqueue_script
:
ВАЖНО!: wp_localize_script() ДОЛЖЕН вызываться после того, как скрипт, к которому он прикрепляется, был поставлен в очередь (enqueued) или зарегистрирован. Эта функция не помещает локализованный скрипт в очередь для последующих скриптов.
Исправьте в вашей функции:
function my_action_callback() {
wp_enqueue_script('jscustom'); // Предполагаю, что вы зарегистрировали его где-то еще
wp_localize_script('jscustom', 'ajax_custom', array(
'ajaxurl' => admin_url('admin-ajax.php')
));
}
Вы всегда можете проверить в <head>
вашей страницы, видите ли вы вашу переменную.

RRikesh
5.66K
15 июл. 2013 г. 10:30:25
Похожие вопросы
1
ответов