将数组从页面模板传递到WordPress中主题文件夹中的另一个php文件

时间:2014-04-18 09:52:27

标签: javascript php jquery ajax wordpress

我有一个front-page.php模板,其中列出了5个最新帖子以及其间的一些自定义帖子类型。当点击底部的更多按钮时,需要ajax加载更多帖子。

所以我根据this tutorial创建了一个loop-home.php文件 默认情况下,我无法使用此代码,因为我在主页的第一次加载时有一个嵌套循环,这个脚本会混淆它。

所以我只向ajax OLDER帖子写了一个新查询。当页面加载并将其存储在数组中时,我收集了已经存在的帖子的帖子ID。

我现在需要在loop-home.php的查询中使用这个数组 我正在使用此方法,因为offset不适用于分页,我需要将这些ID传递给查询中的post__not_in参数。

方法1: 我试过(在loop-home.php中)

$exempt = $_REQUEST['exemptArray'];

但它返回NULL。

方法2:(使用Ajax)

我试过(在front-page.php中) -

<script>
var exemptArray = '<?php echo json_encode($exemptions); ?>';
</script>

然后我去了script.js并添加了 -     //从var array

创建json对象
var jsonArray = JSON.stringify(exemptArray);

var dataToPost = { 'jsonArray':jsonArray };

//send POST data to PHP and handle response
$.ajax({
  type: 'POST',
  url: loopHome, //stored path in variable. working.
  data: dataToPost,
  success: function (data) {

    console.log('I have already sent it.'); //I am getting this log. Working.

  }
});

然后在loop-home.php中 -

$exempt = json_decode($_POST['jsonArray']);

在var_dump($ exempt)

上仍然为NULL

我做错了什么?

1 个答案:

答案 0 :(得分:0)

试试这个

你JS:

$.ajax({
    type:'POST',
    url:'foo.php',
    data:{myArr:exemptArray},
    dataType:'JSON',
    success:function(result){
        console.log(result);
    },
    error:function(data){
        console.log(JSON.stringify(result));
    }
});

您的php页面:

$input=$_POST['myArr'];
$exempt=json_encode($input);

在您的控制台中,您将获得一个阵列。 [object object]是对关联数组的引用。所以在上面的代码结果与exemptArray相同。尝试这样的事情就可以了。我无法在任何地方找到你的数组,所以我用exemtarray本身。