Описание функции sanitize_post()
Функция sanitize_post() используется для очистки и валидации данных поста перед их сохранением в базу данных. Это помогает предотвратить потенциальные уязвимости, такие как XSS и SQL-инъекции, путем удаления нежелательных данных и нормализации входных значений. Функция автоматически обрабатывает заголовки, контент и метаданные поста.
Функция обычно вызывается при сохранении поста через админку или при обработке данных из пользовательских форм.
Параметры
$post
Тип: array
Обязательный: Да
По умолчанию: array()
Описание: Массив данных поста, который нужно очистить
Возможные значения:
ID: Идентификатор поста (целое число)
post_title: Заголовок поста (строка)
post_content: Содержимое поста (строка)
post_excerpt: Аннотация поста (строка)
post_status: Статус поста (строка, например, ‘publish’, ‘draft’)
post_type: Тип поста (строка, например, ‘post’, ‘page’)
$context
Тип: string
Обязательный: Нет
По умолчанию: ‘insert’
Описание: Контекст, в котором выполняется очистка (например, ‘insert’, ‘update’)
Возможные значения:
0: insert
1: update
Возвращаемое значение
Тип: array
Описание: Очищенный массив данных поста
Возможные значения:
• Массив с очищенными данными поста при успешном выполнении
• null в случае ошибки
Примеры использования
Базовый пример очистки данных поста
$post_data = array(
'ID' => 1,
'post_title' => 'Пример заголовка',
'post_content' => '',
);
$sanitized_post = sanitize_post($post_data);
// Вывод: массив с очищенным заголовком и содержимым
Скрипт в контенте будет удален
Очистка данных поста перед обновлением
$post_data = array(
'ID' => 2,
'post_title' => 'Обновленный заголовок',
'post_content' => 'Новый контент',
);
$sanitized_post = sanitize_post($post_data, 'update');
Контекст ‘update’ может повлиять на валидацию статуса поста
Безопасность
Валидация входных данных: Параметры проходят валидацию на наличие обязательных полей
Санитизация: Данные очищаются от нежелательных символов и тегов
Рекомендации: Используйте sanitize_post() перед сохранением данных поста
— Связанные функции
Вставляет новый пост в базу данных
Обновляет существующий пост в базе данных
— Хуки
Фильтрует данные поста перед их очисткой и валидацией
— Примечания
– Ограничения
Не очищает вложенные данные поста (например, мета-данные)
– Частые проблемы
- Ошибка при отсутствии обязательных полей
- Некорректное значение статуса поста может привести к ошибкам