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です。
まとめ
サンプルのコードに書いたように、今表示している投稿のステータスによって出力させたい内容を変更するために使いました。以上、何かのご参考となりましたら幸いです。
このページを共有する