- このトピックには15件の返信、2人の参加者があり、最後にMio Urakamiにより5年、 7ヶ月前に更新されました。
-
投稿者投稿
-
2018年10月2日 2:39 PM #6036
カスタム投稿の各タームアーカイブページを、カスタム投稿一覧ページとは内容を変えたいと思い、以下のように子テーマにテンプレートを作りました。
(1)カスタム投稿一覧ページ
archive.phpをカスタマイズしたarchive-カスタム投稿名.php
—–タームごとに記事一覧がリストアップされる形を想定→成功(2)カスタムタクソノミー(ターム)アーカイブページ
archive.phpをカスタマイズしたtaxonomy-タクソノミー名.php
—–そのタームの記事一覧がリストアップされる形を想定→失敗(1)は意図通りの表示ができたのですが(2)については意図通りではなく
(1)と全く同じ表示になってしまいました。
taxonomy-タクソノミー名.phpがきちんと読み込まれていないように見えます。ということで、タクソノミーテンプレートを作る際、ファイル名など何か特別に気をつけるべきことがもしあれば、教えてくださいませ。
♥ 0いいねをした人: 居ません2018年10月3日 10:33 AM #6064下記のプラグインをインストールすると、ページ上部の管理バーでどのテンプレートが読み込まれているかを確認できるようになります。結構便利なので入れておくと良いかもしれません。
僕の環境で news_category というカスタムタクソノミーをつくり、そのままだと普通の一覧表示がされることを確認し、子テーマに
taxonomy-news_category.php
という空のファイルをいれたところ、真っ白画面が正しく表示されました。Snow Monkey も WordPress のスタンダードなテンプレート階層自体は動作するので、同じように空のテンプレートで試してみると読み込まれているかどうかわかりやすいかもしれません。taxonomy-○○.php
の中身については、Snow Monkey の場合は一般的な WordPress テーマと違い(といっても一般的な方法も使えます)、「レイアウトファイルとビューファイルを呼び出すコントローラー」という扱いになりますので、そこをちょっと変える必要があるかもしれません。例えば、下記のような感じです。$controller = new Mimizuku_Controller(); $controller->layout( get_theme_mod( 'archive-page-layout' ) ); if ( have_posts() ) { // この行が大切! // templates/view/taxonomy-news_category.php を読み込みます $controller->render( 'taxonomy', 'news_category' ); } else { $controller->render( 'none' ); }
こうすると、ビューファイル(コンテンツ部分を定義するファイル)として、
templates/view/taxonomy-news_category.php
が読み込まれますので、そのファイルを作成し、適当な内容を記述されてみてください。♥ 0いいねをした人: 居ません2018年10月3日 12:38 PM #6086ありがとうございます。
さっそくShow Current Templateをインストールしたところ、表示されているのは
archive.php
でした。taxonomy.phpという空のファイルを入れて、タームページを開いてみたのですが、やはりarchive.phpがあたっている、と出ました…
その後、taxonomy.phpに教えていただいた「レイアウトファイルとビューファイルを呼び出すコントローラー」の記述だけを書いて、taxonomy-タクソノミー名.phpも設置したのですが、やはりarchive.phpがあたっていました…
もう少し色々試してみようと思います。
♥ 0いいねをした人: 居ません2018年10月3日 1:00 PM #6095うおー、まじですか。。
例えば、Snow Monkey 以外のテーマに変更してみて、そこに
taxonomy-タクソノミー名.php
を入れたらどうなるか試してみると切り分けできるかと思います。それでちゃんと表示されれば Snow Monkey の問題なので。もし他のテーマでうまくいくようであれば、ちょっと僕の環境では再現できなかったので、可能であればサイトにログインさせてもらって見てみると何かわかるかもしれません。
♥ 0いいねをした人: 居ません2018年10月3日 1:05 PM #6097おお、なるほどです。
ところですみません、これお客様もみているテストサイトなので、今すぐ別のテーマを当てるのが難しいので、あとで別の環境にインストールして試して、ご報告しますね。
♥ 0いいねをした人: 居ません2018年10月4日 9:43 AM #6142おはようございます。違うサーバーに類似のサイトを作って、違うテーマ(Twenty Seventeen)を当ててみました。
無事にtaxonomy.phpで表示されたので、Snow Monkey固有の問題かもしれません。
(そちらの環境で、Snow Monkeyと私が作った子テーマと両方当ててみましたが、そちらにはやはりarchive.phpが当たっていました)違うサーバーに作ったテスト用のサイトについて、ご利用規約ページにあるメアド当てに、ログイン情報をお送りしてよろしいですか?
♥ 0いいねをした人: 居ません2018年10月4日 10:41 AM #6145うーむなるほど…。
違うサーバーに作ったテスト用のサイトについて、ご利用規約ページにあるメアド当てに、ログイン情報をお送りしてよろしいですか?
メールでも Messanger でも大丈夫です。良きほうにお願いします!
♥ 0いいねをした人: 居ません2018年10月8日 11:37 AM #6222キタジマさん、諸々アドバイスありがとうございました。無事に解決できたので、いただいたアドバイスも含めて解決した方法を報告いたしますね。
(1)taxonomy.phpを設置する子テーマ階層が違っていたので、修正。
正しい配置方法
snow-monkey-child/ ├ /templates/ │ └ /view/ │ └ taxonomy-タクソノミー名.php └ taxonomy.php
♥ 0いいねをした人: 居ません2018年10月8日 11:37 AM #6223(2)taxonomy.phpの中に#6064でアドバイスいただいたビューファイルを読み込む記述を追加。
ただし、
$controller->render( 'taxonomy', 'タクソノミー名' );
は$controller->render( 'taxonomy-タクソノミー名' );
に修正。♥ 0いいねをした人: 居ません2018年10月8日 11:38 AM #6224ということで…キタジマさん、もし何か間違っているところがあればご指摘くださいね!
いろいろありがとうございました。♥ 0いいねをした人: 居ません2018年10月9日 11:46 AM #6240解決方法まとめて頂いてありがとうございます!!
$controller->render( 'taxonomy', 'タクソノミー名' );
が正しく動かないのはバグで、v4.3 以降では正しく動作するようになります。トピック、クローズします。
♥ 0いいねをした人: 居ません2019年4月24日 1:54 PM #14618お世話になっております。この件について、追加で質問が出たので、再度トピックをオープンします。
このサイトについて、WPver5にアップデートする作業をいま行っていますが、このときに作ったtaxonomy.phpでエラーが出ました。
Fatal error: Uncaught Error: Class ‘Mimizuku_Controller’ not found in …(url)
というエラーです。ver5へのアップデートでこの部分も何か変更が必要でしょうか?
を見たのですが、よく分かりませんでした。
ではよろしくお願いいたします。
♥ 0いいねをした人: 居ません2019年4月24日 2:07 PM #14620v5 から、
Mimizuku_Controller
がなくなりましたので書き換えが必要です。現状のtaxonomy.php
のコードをまるごと貼り付けてもらえますでしょうか?♥ 0いいねをした人: 居ません2019年4月24日 5:47 PM #14644$controller = new Mimizuku_Controller(); $controller->layout( get_theme_mod( 'archive-page-layout' ) ); if ( have_posts() ) { // この行が大切! // templates/view/taxonomy-faqcategory.php を読み込みます // $controller->render( 'taxonomy', 'faqcategory' ); $controller->render( 'taxonomy-faqcategory' ); } else { $controller->render( 'none' ); }
よろしくお願いします。
♥ 0いいねをした人: 居ません2019年4月24日 7:07 PM #14649まるごと下記に差し替えるとどうでしょうか?
<?php use Framework\Controller\Controller; Controller::layout( get_theme_mod( 'archive-page-layout' ) ); if ( have_posts() ) { Controller::render( 'taxonomy-faqcategory' ); } else { Controller::render( 'none' ); }
♥ 0いいねをした人: 居ません -
投稿者投稿
- トピック「カスタムタクソノミーのタームページについて」には新しい返信をつけることはできません。