清理 save_post 内的数组
Sanitize Array inside save_post
假设我有这样的数组:
Array (
[2066] => Array (
[images_id] => 2066
[title] => title one)
[2063] => Array (
[images_id] => 2063
[title] => title two )
[2022] => Array (
[images_id] => 2022
[title] => title three )
)
或者像这样的数据库格式:
a:3:{i:2066;a:2:{s:8:"image_id";s:4:"2066";s:5:"title";s:9:"Title One";}i:2063;a:2:{s:8:"image_id";s:4:"2063";s:5:"title";s:9:"Title Two";}i:2022;a:2:{s:8:"image_id";s:4:"2022";s:5:"title";s:11:"Title Three";}}
如何使用 esc_attr 或 sanitize_text_field 对 [=31= 进行消毒] 和 标题 ?
非常感谢任何帮助:)
您可以使用 Wordpress 的 esc_attr() and sanitize_text_field() functions using the PHP's array_walk() 清理数组的 images_id
和 title
字段,如下所示:
<?php
$arr = array(
2066 => array (
'images_id' => 2066,
'title' => 'title one'
),
2063 => array (
'images_id' => 2063,
'title' => 'title two'
),
2022 => array (
'images_id' => 2022,
'title' => 'title three'
)
);
//Sanitizing here:
array_walk($arr, function(&$value, &$key) {
$value['images_id'] = esc_attr($value['images_id']);
$value['title'] = esc_attr($value['title']);
//--AND/OR--
$value['images_id'] = sanitize_text_field($value['images_id']);
$value['title'] = sanitize_text_field($value['title']);
});
//Now check the new array:
echo '<pre>'; print_r($arr); echo '</pre>';
?>
假设我有这样的数组:
Array (
[2066] => Array (
[images_id] => 2066
[title] => title one)
[2063] => Array (
[images_id] => 2063
[title] => title two )
[2022] => Array (
[images_id] => 2022
[title] => title three )
)
或者像这样的数据库格式:
a:3:{i:2066;a:2:{s:8:"image_id";s:4:"2066";s:5:"title";s:9:"Title One";}i:2063;a:2:{s:8:"image_id";s:4:"2063";s:5:"title";s:9:"Title Two";}i:2022;a:2:{s:8:"image_id";s:4:"2022";s:5:"title";s:11:"Title Three";}}
如何使用 esc_attr 或 sanitize_text_field 对 [=31= 进行消毒] 和 标题 ?
非常感谢任何帮助:)
您可以使用 Wordpress 的 esc_attr() and sanitize_text_field() functions using the PHP's array_walk() 清理数组的 images_id
和 title
字段,如下所示:
<?php
$arr = array(
2066 => array (
'images_id' => 2066,
'title' => 'title one'
),
2063 => array (
'images_id' => 2063,
'title' => 'title two'
),
2022 => array (
'images_id' => 2022,
'title' => 'title three'
)
);
//Sanitizing here:
array_walk($arr, function(&$value, &$key) {
$value['images_id'] = esc_attr($value['images_id']);
$value['title'] = esc_attr($value['title']);
//--AND/OR--
$value['images_id'] = sanitize_text_field($value['images_id']);
$value['title'] = sanitize_text_field($value['title']);
});
//Now check the new array:
echo '<pre>'; print_r($arr); echo '</pre>';
?>