
parudou
更新日:2020/10/11
ワードプレスの記事のステータスでの条件分岐方法(公開・下書き・非公開など)
ワードプレスの記事状態は次の5つがあります。
公開(publish)
予約投稿(future)
下書き(draft)
保留(pending)
非公開(private)
これらで条件分岐する時も出てくる。
ステータス状態別条件分岐方法
公開済
<?php if( get_post_status( $post->ID ) == 'publish'): ?>
<?php endif; ?>
予約投稿
<?php if( get_post_status( $post->ID ) == 'future'): ?>
<?php endif; ?>
下書き
<?php if( get_post_status( $post->ID ) == 'draft'): ?>
<?php endif; ?>
保留
<?php if( get_post_status( $post->ID ) == 'pending'): ?>
<?php endif; ?>
非公開
<?php if( get_post_status( $post->ID ) == 'private'): ?>
<?php endif; ?>
get_the_ID()でpostIDをGETしてもいい。
どういう時に使うのか?
公開済以外はアドセンスを表示しないなど、
不要なカウントをしない場合に使っています。
<?php if( get_post_status( $post->ID ) == 'publish'): ?>
ここにアドセンスのコード
<?php endif; ?>
というような感じ。
下書きで何度もアドセンスを表示させていませんか?
Googleは容赦なくページビューとしてカウントします。
その他のASPのコードも同じです。
記事中の広告なら、ショートコードでやります。
function publish1() {
$kijinoid = get_the_ID();
if( get_post_status( $kijinoid ) == 'publish'){
return "公開済の時に表示するコード";
}else{
return "下書きの時に表示するコード";
}
}
add_shortcode('publish1', 'publish1');
実際にはショートコードに引数を付けてやります。
じゃないと関数が永遠に増えてしまう。
デザイン的に下書き状態の時にも仮に表示するようにした方がいい。
広告リンクのテキストだけ表示するのがベスト。
「ログインしている時は非表示」とするのが一番ですが、
それだと確認が面倒になるので、そこまでは不要だろう。
その方法はこちらに書いています。
関連記事

是非ご感想・ご指摘等をください。