考虑到涉及多种语言,我无法弄清楚我的代码的哪一部分是错误的。
首先,我将要运行的脚本排入队列,然后在插件主函数文件中使用wp_localize_script
,如下所示:
// All scripts
add_action( 'wp_enqueue_scripts', 'theme_enqueue_scripts' );
function theme_enqueue_scripts() {
// Enqueue and Localize AJAX JavaScript Functions File
wp_enqueue_script( 'ajax-categories-js', plugins_url( 'events-calendar-manager/inc/js/js.js' ), array('jquery'));
wp_localize_script( 'ajax-categoreis-js', 'ajax_object_1', array( 'ajaxurl' => admin_url( 'admin_ajax.php' ) ) );
}
jQuery脚本如下所示:
// JavaScript Document
jQuery(document).ready(function($){
console.log('Started Jquery');
var year='', month='', category='';
$('#next_link').click(function(e){
e.preventDefault();
var $aid =$('#next_link');
year =$aid.data('year');
month =$aid.data('month');
category =$aid.data('category');
console.log('category: ' + category);
});
$('#previous_link').click(function(e){
e.preventDefault();
var $dai =$('#previous_link');
year =$dai.data('year');
month =$dai.data('month');
category =$dai.data('category');
console.log('category: ' + category);
});
console.log('category: ' + category);
$.ajax({
cache: false,
timeout: 8000,
type: 'POST',
data: {action: 'get_post_filter_by_date_and_category', year : year, month: month, category: category},
url: ajax_object_1.ajaxurl,
success: function(data) {},
error: function() {}
});
});
然而当我运行它时,控制台中出现错误:Uncaught ReferenceError: ajax_object_1 is not defined
。这很奇怪,因为应该使用wp_localize_script函数传递对象。
是什么造成了这个问题?
答案 0 :(得分:1)
你这里有一个错字
wp_enqueue_script( 'ajax-categories-js' ...
wp_localize_script( 'ajax-categoreis-js', ...
请参阅ajax-categories-js !== ajax-categoreis-js
wp_localize_script( 'ajax-categories-js', 'ajax_object_1', array( 'ajaxurl' => admin_url( 'admin_ajax.php' ) ) );
答案 1 :(得分:1)
不知道关于WP的nada,但看起来你有一个错字:
wp_localize_script( 'ajax-categoreis-js', 'ajax_object_1', array( 'ajaxurl' => admin_url( 'admin_ajax.php' ) ) );
您可能并不想写...'ajax-categoreis-js'...
而是...'ajax-categories-js'...