清理 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_attrsanitize_text_field[=31= 进行消毒]标题 ?

非常感谢任何帮助:)

您可以使用 Wordpress 的 esc_attr() and sanitize_text_field() functions using the PHP's array_walk() 清理数组的 images_idtitle 字段,如下所示:

<?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>';

?>