【WordPress】投稿タイプ(post_type)を完璧に取得するコード

投稿タイプを取得する

以下の2点を補った形。

  • カスタム投稿で記事がない場合、get_postが機能しない。
  • get_query_var()では投稿一覧を固定ページに登録している場合は機能しない。
$postType = get_post()->post_type;
if( empty( $postType ) ){
	$postType = get_query_var( 'post_type' );
}
echo "投稿タイプ = " . $postType;

1行目:固定ページと投稿ページのpost_typeが取得できる。カスタム投稿は空。
2行目:カスタム投稿ページの場合空なのでempty()でtrueが返り条件内実行。
3行目:カスタム投稿のpost_typeを取得する。記事がない場合も取得できる。

固定ページ :page
投稿ページ :post
カスタム投稿 :カスタム投稿名

これで全てカバーできるはずです。

最近おもったこと。

ニュース一覧のようなデフォルトの投稿が使えそうな場合でも、カスタム投稿で実装したほうがテンプレートタグの分散も減って組みやすいんじゃないだろうか。

スポンサーリンク
RESAD
RESAD

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
RESAD