WordPressの新着情報表示にカスタム投稿タイプを含める方法

WordPressの新着情報表示にカスタム投稿タイプを含める方法

@junirock78 さんが、ツイッターでカスタム投稿タイプも含めた新着情報を表示する方法を質問されていたので、おせっかいかとは思いつつ話の輪に加わってみました。

方法としては、テンプレートで query_posts または get_posts などを使って取得する方法が一般的だとは思いますが、これだとデータベースへの問い合わせが新たに発生してしまいます。
トップページでの表示であれば、もともと最新の投稿を取得してきていますから、これにカスタム投稿タイプを含めるようにしてしまえば、新たなデータベースへの問い合わせもなく、パフォーマンス的にも良くなりますね。

では、どうすれば良いかというと、データベースへの問い合わせが発生する直前に、トップページだったら(最新の投稿を表示している = is_home() がtrue)、リクエストの条件にカスタム投稿タイプの指定を追加してあげれば、あとは WordPress が自動でカスタム投稿タイプを含めた最新情報を取ってきてくれます。
ここらへんが WordPress の便利なところですよね。

これを実際のコードにするとこれだけ。
テーマのfunctions.phpに追加してもらえれば。
サンプルは固定ページを加えた表示にするものなので、投稿タイプの設定は、arrayの中の値をカスタマイズください。

この記事は、jim912によって書かれたものです。
引用を行う場合は、著作権法に定める範囲にて、引用元であるSimple Colorsの出展元表示とhttp://www.warna.info/archives/1703/へのリンクを必ず行って下さい。

function chample_latest_posts( $wp_query ) {
	if ( is_home() && ! isset( $wp_query->query_vars['suppress_filters'] ) ) {
		$wp_query->query_vars['post_type'] = array( 'post', 'page' );
	}
}
add_action( 'parse_query', 'chample_latest_posts' );

条件が決まっているなら、投稿タイプの設定を自動化することも可能ですぞ。(page-attributes のサポートをしていないとか)

注意点として、他に query_posts や get_posts を使っている箇所がある場合、影響が出る可能性があります。その場合は、 $wp_query->query_vars の内容で分岐条件を追加してあげて下さい。

カテゴリー: WordPressの小技 タグ: , , パーマリンク

WordPressの新着情報表示にカスタム投稿タイプを含める方法 への3件のフィードバック

  1. ピンバック: blog PRIMAL STANDARD : 結局のところテーマを自作するのが楽しい。

  2. ピンバック: WordPress カスタム投稿の一覧をトップページ表示する方法 | ネットを便利に活用するTips ネットビジネスラボ

  3. ピンバック: WordPressの新着情報表示にカスタム投稿タイプを含める方法 | Simple Colors : ちゅどん道中記

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です