Под постом, как обычно, подразумевается любая запись (тип post), страница (тип page) и другие произвольные типы постов.
| get_post_status( $ID = '' ) | 
- ID
- (целое число) ID поста, статус которого нужно получить. Если ID не указан, функция возвращает false.
Обратите внимание, если в параметре указан ID вложения (тип attachment), то тогда будет возвращен статус родительского поста. У самих вложений статус всегда один и тот же — inherit.
Вот полный список всех возможных статусов постов:
- 
publish— опубликованный пост,
- 
pending— пост ожидает проверки модератором,
- 
draft— черновик,
- 
auto-draft— автоматически созданный чероновик для нового поста, не содержащий контента,
- 
future— пост запланирован на публикацию,
- 
private— невидим для незарегистрированных пользователей,
- 
inherit— статус вложений и редакций постов,
- 
trash— пост, находящийся в корзине (удаленный), статус добавлен в WordPress 2.8
Вы также можете получить все статусы постов в виде массива объектов при помощи функции get_post_stati().
Пример
Простой такой пример:
| $post_id = 55; $post_status = get_post_status( $post_id ); if($post_status == 'publish') echo 'Указанный пост опубликован на сайте.'; | 
Источник: misha.blog
