Функция sanitize_text_field()
очищает переданную в неё строку следующим образом:
sanitize_text_field( $str )
- $str
- (строка) Строка, которую нужно очистить.
Пример использования sanitize_text_field()
Тут я решил сделать один пример с различным вариантами использования функции.
// очищаем HTML-теги $text = '<h2>Какой-то заголовок</h2>'; echo sanitize_text_field( $str ); // Какой-то заголовок // очищаем переносы строк (а точнее заменяем пробелами) $str = 'строка 1 строка 2'; echo sanitize_text_field( $str ); // строка 1 строка 2 // эммоджи $str = 'Эмоджи никуда не исчезнут 🔥🦕🦖'; echo sanitize_text_field( $str ); // Эмоджи никуда не исчезнут 🔥🦕🦖 // передаём в функцию целое числовое значения echo sanitize_text_field( 50 ); // строка 50 // как очищаются октеты и что это вообще $str = 'https://misha.agency/' . urlencode( 'контакты' ); // https://misha.agency/%D0%BA%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B echo sanitize_text_field( $str ); // https://misha.agency/ // массив $array = array( 'author' => 'Миша', 'author_uri' => 'https://misha.agency' ); echo sanitize_text_field( $array ); // пустая строка // json $array = array( 'author' => 'Миша', 'author_uri' => 'https://misha.agency' ); $str = json_encode( $array ); // {"author":"u041cu0438u0448u0430","author_uri":"https://misha.agency"} echo sanitize_text_field( $str ); // {"author":"u041cu0438u0448u0430","author_uri":"https://misha.agency"} // также для массивов подойдёт функция array_map() $array = array( 'author' => '<cite>Миша</cite>' ); print_r( array_map( 'sanitize_text_field', $array ) ); // Array( [author] => Миша )
Фильтр sanitize_text_field
Перед тем, как возвратить итоговое значение, функция применяет к нему фильтр sanitize_text_field
, что позволяет нам добавить дополнительную очистку или наоборот удалить.
add_filter( 'sanitize_text_field', 'true_additional_sanitization' ); function true_additional_sanitization( $filtered, $str ) { // $str – оригинальная строка без очистки // $filtered - очищенное значение // ... делаем что-то дополнительно return $filtered; // возвращаем результат }