Sanitize_Post()不是清理Post对象

时间:2021-02-21 作者:techn9ne

我想在不使用foreach的情况下清理WP\\u Query post对象。

我使用了这种方法:

$args = array(
// ...
)
$data = array();

$the_query = new WP_Query($args);

$data["post"] = $the_query->posts;

array_map("sanitize_post", $data["post"]);

return rest_ensure_response($data);
输出:

enter image description here

正如您所看到的,过滤器正在工作,并将其转到;“显示”;“自”;“原始”;。

但问题是:<script> 标签仍位于post\\u标题字段中。

有什么问题吗?

1 个回复
SO网友:techn9ne

解决方案:

“sanitize\\u post随附”;“显示”;默认过滤器选项。而且它不会清理标签。

但如果您尝试这样的代码:

 $sanitizer = function($post){
 return sanitize_post($post, "db"); // or "edit"
};

array_map($sanitizer, $data["post"]);
现在它针对XSS清理字段!

enter image description here

相关推荐

Get full image array

当我使用高级自定义字段时,我可以返回上载的完整图像数组。是否有本机WordPress方法可以通过图像ID获取媒体库中任何图像的完整图像阵列?我可以找到方法来获取alt文本和特定的图像大小,但不能获取数组本身。。。