使用functions.php WORDPRESS中定义的变量

时间:2014-01-08 04:05:39

标签: php jquery ajax wordpress

我的函数.php文件中有一个从jQuery拉到php的变量。

但是我无法在页面中使用它。

当我从functions.php回显它时,它在chrome中显示在控制台中,但附加了一个..

如果我尝试在模板页面中回显它,我什么也得不到。

以下代码。

的jQuery

var pie = 131;

$.ajax({
    url: ajaxurl, //super global supplied by Wordpress; do not change
    type: 'POST',
    data: { 
        action: 'get_post_id', //this is correct
            pie : pie 
    },
    success: function (data){
        console.log(data);
    }
});

的functions.php

    add_action('wp_head','pluginname_ajaxurl');
    function pluginname_ajaxurl() {
    ?>
    <script type="text/javascript">
    var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
    </script>
    <?php
    }

    add_action( 'wp_ajax_nopriv_get_post_id', 'my_ajax_function' );
    add_action( 'wp_ajax_get_post_id', 'my_ajax_function' );

    function my_ajax_function() {
        $new_pie = isset($_POST['pie']) ? $_POST['pie'] : false;
        echo($new_pie);
    }

模板page.php文件

    <?php echo($new_pie); ?>

提前致谢。

1 个答案:

答案 0 :(得分:0)

我在你之前的一个问题中解决了这个问题。

0被附加到Ajax调用,因为在echo之后你需要die()

echo $new_pie;
die();

这将阻止0被追加。

至于从AJAX调用返回数据,你需要对它做一些事情,比如将它附加到元素上。

$('#elementID').append(data);

在这种情况下,elementID是DIV或P等元素的ID。

<强>旁注

没有理由使用以下内容:

<script type="text/javascript">
var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
</script>

Wordpress为您创建了javascript ajaxurl变量,自WP 2.8以来一直在这样做。