Описание функции wp_transition_post_status()
Функция wp_transition_post_status() обрабатывает переход статуса записи и вызывает соответствующие хуки для выполнения действий при изменении статуса записи. Это функция полезна для плагинов и тем, которым необходимо реагировать на изменения статуса, такие как публикация, обновление или удаление записей.
Функция используется внутри ядра WordPress и может быть вызвана автоматически при изменении статуса записи
Параметры
$new_status
Тип: string
Обязательный: Да
По умолчанию: none
Описание: Новый статус записи
Возможные значения:
0: publish
1: draft
2: pending
3: private
4: future
5: trash
$old_status
Тип: string
Обязательный: Да
По умолчанию: none
Описание: Старый статус записи
Возможные значения:
0: publish
1: draft
2: pending
3: private
4: future
5: trash
$post
Тип: WP_Post
Обязательный: Да
По умолчанию: none
Описание: Объект записи, для которой изменяется статус
Возвращаемое значение
Тип: void
Описание: Функция ничего не возвращает
Возможные значения:
• void
Примеры использования
Простой пример использования функции в хуке для обработки перехода статуса записи
add_action('transition_post_status', 'my_transition_post_status', 10, 3);
function my_transition_post_status($new_status, $old_status, $post) {
if ($new_status === 'publish') {
// Действие при публикации записи
}
}
В этом примере выполняется действие при публикации записи
Пример с дополнительной логикой для обработки перехода в статус корзины
add_action('transition_post_status', 'my_transition_post_status', 10, 3);
function my_transition_post_status($new_status, $old_status, $post) {
if ($new_status === 'trash' && $old_status === 'publish') {
// Действие при перемещении записи в корзину
}
}
Действие срабатывает только если запись была опубликована и перемещена в корзину
Безопасность
Валидация входных данных: Необходимо проверять статусы на корректность перед вызовом функции
Санитизация: Функция автоматически обрабатывает объекты записи
Рекомендации: При записи данных используйте функции для экранирования, такие как esc_html()
— Связанные функции
Обновляет запись и может вызывать изменения статуса
Вставляет новую запись и устанавливает начальный статус
— Примечания
– Ограничения
Функция не обрабатывает статусы, которые не поддерживаются WordPress
– Частые проблемы
- Ошибки при неправильной передаче объекта записи
- Проблемы с хуками, если они не зарегистрированы