質問: ### 前提・実現したいこと archive.php内の条件分岐で、デフォルト投稿の一覧ページを表示したいと考えております。 wordpress2017にてサイトを作成中なのですが、投稿を二種類使用しています。 一つ目はデフォルト投稿(使用カテゴリはinfo)、二つ目はカスタム投稿(使用カテゴリはarea,event)です。 template-part/post内に「custum.php」という名前でアーカイブページのarticle部分を作成し表示はできました。 デフォルト投稿の一覧ページをtemplate-part/post内にもともとあったcontent.phpで表示させたいです。 archive.php内で条件分岐による振り分けは可能なのでしょうか??その際はどのように記述したらよいのでしょうか? ◆追記 現在のパーマリンク設定は、 「投稿名 http://localhost/wordpress/sample-post/」にチェックが入っており、カスタム構造の部分は「http://localhost/wordpress/%postname%/」となっております。 ◆追記2 やはり上記のように条件分岐でcontent部分を振り分ける、というのはあまりやるべきではないのでしょうか?この質問をした理由なのですが、カスタム投稿に関連する部分を先に制作しておりまして、カスタム投稿の一覧をarchive.phpで表示させました。後からデフォルト投稿の一覧を作成しようと、archive-info.phpを作成したところarchive.phpで表示されてしまいました... 原因を探ったのですが分からず、content部分を条件分岐させてはどうだろう、という考えに至った次第です。 質問タイトルの通り、条件分岐についても引き続き教えて頂きたいですが、archive-info.phpで表示できなかった原因について思い当たる節などもありましたら教えて頂きたいです! ### 該当のソースコード archive.php内コード(デフォルトの状態ですが念のため掲載します) ``` twentyseventeen_get_svg( array( 'icon' => 'arrow-left' ) ) . '' . __( 'Previous page', 'twentyseventeen' ) . '', 'next_text' => '' . __( 'Next page', 'twentyseventeen' ) . '' . twentyseventeen_get_svg( array( 'icon' => 'arrow-right' ) ), 'before_page_number' => '' . __( 'Page', 'twentyseventeen' ) . ' ', ) ); else : get_template_part( 'template-parts/post/content', 'none' ); endif; ?> ```
回答: デフォルトの投稿と、二つ目はカスタム投稿(使用カテゴリはarea,event)、カテゴリと記載があるのですが、このカスタム投稿タイプの、post_type名が仮に「hoge」だったとして、 ``` get_template_part( 'template-parts/post/content', get_post_format() ); ``` この部分を ``` if(is_post_type_archive('hoge')){ //二つ目のカスタム投稿を条件分岐して、それ用のテンプレートを読み込み get_template_part( 'template-parts/post/custom', get_post_format() ); }else{ //それ以外はcontent.phpを使う get_template_part( 'template-parts/post/content', get_post_format() ); } ``` こんな感じで書けばいける気がします。 投稿タイプのアーカイブを判別する条件分岐タグ を、使いました。 http://wpdocs.osdn.jp/関数リファレンス/is_post_type_archive