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

Passing an array from a page template to another php file in theme folder in WordPress

本文关键字:文件夹 文件 php 另一个 WordPress 数组      更新时间:2023-09-26

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

因此,我根据本教程创建了一个loop-home.php文件默认情况下,我不能使用这段代码,因为我在主页的第一次加载中有一个嵌套循环,而这个脚本把它搞砸了。

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

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

方法1:我尝试过(in loop home.php)

$exempt = $_REQUEST['exemptArray'];

但它返回NULL。

方法2:(使用Ajax)

我尝试过(在首页.php)-

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

然后我转到script.js并添加-//从var数组创建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

我做错了什么?

试试这个

你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);

在控制台中,您将获得一个数组。[对象对象]是对关联数组的引用。因此,在上面的代码中,结果与exemptArray相同。尝试这样的方法你就可以了。我在任何地方都找不到你的数组组成,所以我使用了exemptaray本身。