質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.44%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

1回答

4535閲覧

Wordpressのカスタム投稿のテンプレートファイルをサブディレクトリに入れて読み込ませたい

shika_niku

総合スコア46

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2016/04/15 04:37

とてもわかりづらいタイトルで恐縮です。

wordpressで仮に「news」と言うslugのカスタム投稿を作成したとします。(has_archiveはtrueで)
そのさいにこのカスタム投稿の一覧ページには、arhcive-news.phpが使用されるかと思います。

この時、カスタム投稿を作成しているregister_post_type() が書かれたファイルと、arhcive-news.php, single-news.php、その他カスタム投稿newsに使用する関数などを置いたファイルを、以下のようにテーマ内のサブディレイクトリにまとめたいです。

/ my-theme //テーマ直下 //テーマのもろもろ |- index.php |- archive.php |- single.php |- style.css / news //news関連フォルダ |- archive-news.php |- //news関連のファイル.... |- //news関連のファイル...

ですがこうすると、newsの一覧ページにアクセスしたさいnewsディレクトリ以下のテンプレートファイルを読み込んでくれず、テーマディレクトリ直下のarchive.phpが読み込まれてしまいます。

直下におけばいい話なのですが、カスタム投稿が複数あるため、できれば投稿ごとにディレクトリを分けて進めていきたいと思っています。
上記のようなディレクトリ構造を実現させる設定などありますでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

get_template_part() で分岐する方法があります。

PHP

1<?php /* archive.php */ 2if ( is_post_type_archive( 'news' ) ) { 3 get_template_part( 'news/archive', 'news' ); // news/archive-news.php 4} else { 5 // ここに通常用archive.phpの記述をするか、下記のようにdefault用archive.phpを用意する 6 get_template_part( 'default/archive' ); // default/archive.php 7 /* 8 // 再帰呼び出しには注意。(多分エラーになるとは思う) 9 get_template_part( 'archive' ); // archive.php ← やってはいけない例 10 */ 11}; 12?>

【WordPressでテンプレートを呼ぶget_template_part()】
http://www.youngflavor.net/2013/12/826/

【関数リファレンス/get template part - WordPress Codex 日本語版】
https://wpdocs.osdn.jp/関数リファレンス/get_template_part#テーマサブフォルダの使用

index.php で全てのテンプレートの出し分けをするという手もあります。

投稿2016/04/15 15:11

kei344

総合スコア69498

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.44%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問