Php 获取警告:内爆():在收到var值后

Php 获取警告:内爆():在收到var值后,php,wordpress,Php,Wordpress,我有以下错误: 警告:array_map():参数#2应该是 警告:内爆():在第1918行的wp includes/class-wp-query.php中传递的参数无效 在我的php上,我从另一个页面收到一个var,我做到了: $myId = $_POST['varPostId']; $parts = explode(',', $myId); 然后我需要读取该值 query_posts(array( 'post__in' => $myId )); 但是我得到了上面的错误 如果

我有以下错误:

警告:array_map():参数#2应该是

警告:内爆():在第1918行的wp includes/class-wp-query.php中传递的参数无效

在我的php上,我从另一个页面收到一个var,我做到了:

$myId = $_POST['varPostId'];
$parts = explode(',', $myId);
然后我需要读取该值

query_posts(array(
    'post__in' => $myId
));
但是我得到了上面的错误

如果我这样做:

    'post__in' => $parts
));
我得到一张空白页

我尝试使用
内爆

$myId = $_POST['varPostId'];
$parts = implode(',', $myId);
并直接在查询中获取值

query_posts(array(
    'post__in' => $_POST['varPostId']
));

$\u POST['varPostId']
是一个类似于
405
的单一值。您从
POST
请求中获得的值似乎只包含一个POST ID,它应该是一个int,但可能是一个字符串。您需要进行一些类型和错误检查。像下面这样的事情应该很有希望奏效。我看到并在
中发布,我假设WordPress在这里发挥作用

//将您的ID放入变量并对其进行清理
$myId=sanitize_key($_POST['varPostId']);
//强制将其设置为int(如果不是来自sanitize_键)
$myId=(int)$myId;
//不要爆炸,因为这里不合适
//$parts=分解(“,”,$myId);
//将post id作为数组添加到参数中
查询职位(
排列(
'post__in'=>数组($myId)
)
);
要进一步了解为什么这里不适合使用
分解
,可以使用它来转换字符串,通常如下所示:

哦,你好,世界

包含多个项的数组,如下所示:

$asdf = array(
  0 => 'oh',
  1 => 'hello',
  2 => 'world'
);
但是你似乎没有逗号分隔的post ID字符串,你只有一个,所以最好不要在这里使用

如注释中所述,获取一个字符串并将其拆分为一个项目数组。反之亦然。它获取一个数组并将其压缩为一个字符串

所以你可以做一些事情,比如:

$myArray=array(
0=>“你好”,
1=>“世界”
);
//转换为字符串
$myString=内爆(“,”,$myArray);
echo$myString;//你好,世界
//转换回数组
$myString=explode(“,”,$myArray);
var_dump($myString);//打印上面的数组

是的,谢谢,但我做了
var\u转储($\u POST['varPostId'])。。我得到的是一个数组。
string(5)“array”
我真的做了任何尝试,当我做
'p'=>$\u POST['varPostId']时,所有的都工作了,
而不是
'POST\u in'=>$\u POST['varPostId']
@实际上我的工作不正常。。。但是你的,你提到的第一点,给出了一个空白页。我不得不使用'p'=>array($myId),注释不用于扩展讨论;这段对话已经结束。