WordPressで投稿/カスタム投稿タイプ/固定ページのステータスを取得して、条件分岐させたい場合は「get_post_status」という関数を使う方法があります。
ステータスを取得する方法
使い方
Codexにあるコードを引用させていただきますと・・・
<?php get_post_status( $ID ); ?>
という使い方をします。取得できるステータスは以下です。
取得できるステータス
| publish | 公開済み | 
| pending | レビュー待ち | 
| draft | 下書き | 
| private | 非公開 | 
| future | 予約投稿 | 
| trash | ゴミ箱に移動した投稿 | 
| auto-draft | 自動下書き保存された投稿(「自動下書き」がpostsテーブルに入ってました) | 
| inherit | リビジョン | 
使えるパラメーター
| $ID(オプション) | 投稿や固定ページのIDを指定できます。カスタム投稿タイプもOK。 $IDが未入力の場合は、現在の投稿(またはカスタム投稿タイプ/固定ページ)のIDが設定されます。 | 
なんとなく使い方を理解できたところで、いくつかサンプルを書きました。
サンプル
「公開済みのステータスかどうか」で条件分岐したい場合
<?php
if( get_post_status() == 'publish' ){ //条件分岐
 //公開済みの場合の処理
} else {
 //公開済みじゃない場合の処理
}
?>「レビュー待ちのステータスかどうか」で条件分岐したい場合
<?php
if( get_post_status() == 'pending' ){ //条件分岐
 //レビュー待ちの場合の処理
} else {
 //レビュー待ちじゃない場合の処理
}
?>上記の2つのコードは、取得したステータスによって、処理させたい内容を変更したい場合に使えます。
IDを指定してステータスを取得、表示する場合
ステータスを表示したい固定ページのIDが「2」だったとします。
<?php echo get_post_status( '2' ); //固定ページのIDが「2」の場合 ?>
というようにIDを指定すればOKです。
まとめ
サンプルのコードに書いたように、今表示している投稿のステータスによって出力させたい内容を変更するために使いました。以上、何かのご参考となりましたら幸いです。
このページを共有する