Описание get_post_status
— Filter
Хук get_post_status позволяет изменить статус поста перед его выводом. Он срабатывает, когда WordPress запрашивает статус поста для отображения, что позволяет разработчикам изменять поведение в зависимости от условий
Примеры использования
Пример изменения статуса поста на ‘draft’ для определенной категории:
add_filter('get_post_status', function($post_status, $post) {
if ($post->post_type === 'post' && has_category('special', $post)) {
return 'draft';
}
return $post_status;
}, 10, 2);
Этот пример изменяет статус поста на ‘draft’, если он принадлежит категории ‘special’
Пример изменения статуса поста в зависимости от мета-данных:
add_filter('get_post_status', function($post_status, $post) {
if ($post->post_type === 'product' && get_post_meta($post->ID, 'out_of_stock', true)) {
return 'draft';
}
return $post_status;
}, 10, 2);
Здесь мы изменяем статус товара на ‘draft’, если он не в наличии
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо динамически изменять статус постов в зависимости от специфических условий
– Производительность
Хук может повлиять на производительность, если используется неэффективная логика для определения статуса
– Предупреждения
Следите за тем, чтобы изменения статуса не нарушали логику работы вашего сайта или плагинов
Альтернативы
Тип: action
Этот хук позволяет выполнять действия при изменении статуса поста, а не только изменять его
Используйте его, если нужно выполнять дополнительные действия при изменении статуса поста