Php 获取警告:内爆():在收到var值后
我有以下错误: 警告:array_map():参数#2应该是 警告:内爆():在第1918行的wp includes/class-wp-query.php中传递的参数无效 在我的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 )); 但是我得到了上面的错误 如果
$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),注释不用于扩展讨论;这段对话已经结束。