質問: ### 前提・実現したいこと Wordpress初心者です。 VT Grid Magと言うテーマを使い、Webページを作成しようとしているのですが デフォルトではTOPページに投稿の一覧がグリッド状に表示される様になっています。 ここに特定のカテゴリ(id=15 スラッグ"new")を表示したいと考えています。 ### 発生している問題・エラーメッセージ topページで読み込んでいるテンプレートがindex.phpだったので、色々と書き換えてみたのですがうまくいきません。 ``` /**元のコード**/ '; } // Start the Loop. while( have_posts() ) { the_post(); // Include template for the content. if( 'layout-default' != $layout ) { get_template_part( 'content', 'grid' ); } else { get_template_part( 'content', get_post_format() ); } } // End Post Wrap. if( 'layout-default' != $layout ) { echo ''; } // Pagination. the_posts_pagination(); } else { // Not Found Template. get_template_part( 'content', 'none' ); } ?> ``` ### 試したこと ネットで調べたのですが、ぴったりの情報がなく、汎用的な内容のページから カテゴリリンクはarchive.phpが読み込まれていたので、archive-15.phpを作成してみたり、 index.phpの条件を以下の通り変更してみたりしましたが、正常に動作しません。 ※以下のコードにすると、そのカテゴリ以外でも表示されたり、求めている動作にはなりませんでした。 ``` /**試したコード**/ '; } // Start the Loop. while(in_category(array(15))) { the_post(); // Include template for the content. if( 'layout-default' != $layout ) { get_template_part( 'content', 'grid' ); } else { get_template_part( 'content', get_post_format() ); } } // End Post Wrap. if( 'layout-default' != $layout ) { echo ''; } // Pagination. the_posts_pagination(); } else { // Not Found Template. get_template_part( 'content', 'none' ); } ?> ``` ### 見当違いな事をしているかもしれませんが、ご教示頂けますと幸いです。 よろしくお願い致します。
回答: >特定カテゴリのみTOPに表示したい ということなので、 WordPress Codex 日本語版 プラグイン API/アクションフック一覧/pre get posts ホームページ上に唯一のカテゴリーを表示 functions.phpに以下のコードを ``` function my_home_category( $query ) { if ( $query->is_home() && $query->is_main_query() ) { $query->set( 'cat', '15' ); } } add_action( 'pre_get_posts', 'my_home_category' ); ``` これでいけるのではないですか。 参考まで。