wordpress очищает массив?
У меня есть пользовательская форма записи, которая отправляет данные на страницу, которая использует wp_insert_post для создания записи. Я могу легко очистить большинство данных, но у меня есть некоторые проблемы с моими тегами, которые я извлекаю в массиве:
$tags = $_POST['tags'];
Прежде чем использовать эти теги в качестве tags_input, как я могу успешно очистить все имена?
Спасибо!
12
4 answers
Вот способ сделать это с помощью функции PHP отображение массива:
// Good idea to make sure things are set before using them
$tags = isset( $_POST['tags'] ) ? (array) $_POST['tags'] : array();
// Any of the WordPress data sanitization functions can be used here
$tags = array_map( 'esc_attr', $tags );
31
Author: chrisguitarguy, 2016-12-28 15:31:58
Мне нужна была рекурсивная очистка, поэтому вот мое решение:
/**
* Recursive sanitation for an array
*
* @param $array
*
* @return mixed
*/
function recursive_sanitize_text_field($array) {
foreach ( $array as $key => &$value ) {
if ( is_array( $value ) ) {
$value = recursive_sanitize_text_field($value);
}
else {
$value = sanitize_text_field( $value );
}
}
return $array;
}
4
Author: Broshi, 2017-02-05 09:14:46
Если кому-то интересно, я решил это так:
$tags = $_POST['tags'];
if (count($tags) > 5){
echo 'Niet meer dan 5 tags';
$stop = true;
}
if (is_array($tags)) {
foreach ($tags as &$tag) {
$tag = esc_attr($tag);
}
unset($tag );
} else {
$tags = esc_attr($tags);
}
3
Author: FLX, 2011-08-21 13:03:30
Вы можете использовать эту функцию практически во всех случаях.
/**
* Recursive sanitation for text or array
*
* @param $array_or_string (array|string)
* @since 0.1
* @return mixed
*/
function sanitize_text_or_array_field($array_or_string) {
if( is_string($array_or_string) ){
$array_or_string = sanitize_text_field($array_or_string);
}elseif( is_array($array_or_string) ){
foreach ( $array_or_string as $key => &$value ) {
if ( is_array( $value ) ) {
$value = sanitize_text_or_array_field($value);
}
else {
$value = sanitize_text_field( $value );
}
}
}
return $array_or_string;
}
0
Author: Lenin Zapata, 2017-02-09 20:24:45