需要帮助发现wordpress中的jQuery或php中的错误

时间:2014-07-28 16:43:37

标签: php jquery ajax wordpress

考虑到涉及多种语言,我无法弄清楚我的代码的哪一部分是错误的。

首先,我将要运行的脚本排入队列,然后在插件主函数文件中使用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函数传递对象。

是什么造成了这个问题?

2 个答案:

答案 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'...