【WordPress】公開・非公開記事の判定

電脳備忘録

本記事のソースコードの利用によって生じた損害について、当方は一切の責任を負いません。ご自身の判断と責任のもとで参照・ご利用ください。

この記事は最終更新から4年以上経過しています。

あるサイトで、cookieの有無で表示を切り替えるようにしています。
公開・非公開に関わらずcookieを取得していたため、非公開の記事でプレビュー時にcookie取得し、表示がおかしくなってバグのように見えてしまっていました。
そこで公開記事の場合のみcookieを取得するようにしたときのメモ。

//flgにあるcookieの値を取得
 $cookie = $_COOKIE["flg"];

 //cookieの値はスラッグなので、スラッグから記事IDを取得
 $post = get_page_by_path( $cookie, 'OBJECT', 'post' );
 $post_id = $post->ID;

 //cookieのスラグの記事ステータスが公開の場合はcookieをセットする
 if (get_post_status($post_id) === 'publish') {
  //公開済
  if ($cookie <> ""){
	//取得したcookieを$item_idにセット
    $item_id = $cookie;
  } else {
  //cookieの値がない場合は何もしない
  }

} else {
  //非公開・下書き(公開以外のステータス)の場合はcookieをセットしない
}

WordPressでスラッグ名からIDを取得する方法
WordPress記事の公開状態・下書き状態などのステータス判定方法

0%