【WordPress】カスタム投稿タイプで登録した記事をhome.phpで出力させる

電脳備忘録

カスタム投稿タイプで投稿したエントリーのみを表示させたかったのですが、方法がわからず悩んでいました。 で、結局ぐぐったらまんまやりたいことをすでにやられている方がいらしたので、そのまま使わせていただきました。感謝です。

is_main_query関数とpre_get_postsフックを使って、roopの記述を改変しなくてもhome.phpの出力内容を通常の投稿からカスタム投稿に変えることができるという手法です。

メインクエリを改変!home.phpでカスタムポストタイプの内容を出力させる方法。-StellaDesign

function.phpに下記のコードを追加することで対応できました。

add_action( 'pre_get_posts', 'foo_modify_query_exclude_category' ); // pre_get_postsにフック
// フック時に使う関数
function foo_modify_query_exclude_category( $query ) {
if (! is_admin() && $query->is_main_query() && $query->is_home()) // 管理画面以外 かつ メインクエリ かつ home
$query->set( 'post_type', 'course'); // カスタム投稿タイプ course をセット
}

home.phpはindex.phpをコピーして「home」にリネームして確認。
カスタム投稿タイプで登録した記事のみ表示されました。

広告

ブログの維持費に充てるでございます・・・。