WP_LOCALIZE_SCRIPT未在HEAD部分创建变量

时间:2013-07-10 作者:freaky

我试图在wordpress中创建一个ajax函数,我将脚本排队,并在functions.php:

function my_enqueue_scripts() {
    wp_enqueue_script(
        \'load_post\', 
        get_template_directory_uri() . \'/js/load_post.js\', 
        array( \'jquery\' ), 
        \'1.0\', 
        1
    );
    wp_localize_script( 
        \'load_post\', 
        \'wp_ajax\',
        array( 
            \'url\' => admin_url( \'admin-ajax.php\' ), 
            \'nonce\' => wp_create_nonce( \'ajax_nonce\' )
        )
    );
}
add_action(\'wp_enqueue_scripts\', \'my_enqueue_scripts\');
load\\u post(加载后)。js公司:

jQuery(document).ready(function($) { 

    jQuery(\'#next-container\').click(function($) {

        var $container = jQuery(\'#isotope-container\');
        var IDs = [];
        jQuery(".element").each(function($){ IDs.push(this.id); });

        jQuery(\'#next-container\').html(\'loading\');

        jQuery.ajax({
            type: \'POST\',
            url: wp_ajax.url,
            dataType: \'html\',
            data: {  action: \'load_post\',  
                     ajax_nonce: wp_ajax.nonce,
                     post_ids: IDs,  
                  },  //{\'post_ids[]\': IDs },
            success: function(data) {
                    jQuery(\'#next-container\').html(\'\'); 
                    $container.isotope( \'insert\', $(data)); 
                    }
        })
    })
})
但是在我的load_post.js 我找不到wp_ajax 变量在google chrome或IE中,我没有看到在源代码的头部添加任何变量。

我的问题出在哪里?我错过什么了吗?

1 个回复
最合适的回答,由SO网友:Johannes Pille 整理而成

您的代码看起来正确
alert(wp_ajax.nonce); 应显示nonce
您还可以验证wp_ajax 对象通过console.log(wp_ajax) 在浏览器的Javascript控制台中。

wp_localize_script 将对象添加到页脚(调用wp_footer() 应该出现在主题的页脚中。php文件)<看起来是这样的:

<script type="text/javascript">
    /* <![CDATA[ */
    var wp_ajax = {"url":"http://example.com","nonce":"123XYZ"};
    /* ]]> */
</script>

结束

相关推荐

插件AJAX保存到定制表

我正在学习如何在我正在编写的新插件的管理中使用AJAX。在PHP中,我有以下函数:function ppmhnh_add_location(){ global $wpdb; $values = array(); parse_str($_POST[\'form\'], $values); $sql = \"INSERT INTO ppm_hoopsandhits_locations VALUES (\'{$values[\'locale\']}