カスタムタクソノミーのタームページについて

15件の投稿を表示中 - 1 - 15件目 (全16件中)
  • 投稿者
    投稿
  • #6036
    Mio Urakami
    参加者
    1

    カスタム投稿の各タームアーカイブページを、カスタム投稿一覧ページとは内容を変えたいと思い、以下のように子テーマにテンプレートを作りました。

    (1)カスタム投稿一覧ページ
    archive.phpをカスタマイズしたarchive-カスタム投稿名.php
    —–タームごとに記事一覧がリストアップされる形を想定→成功

    (2)カスタムタクソノミー(ターム)アーカイブページ
    archive.phpをカスタマイズしたtaxonomy-タクソノミー名.php
    —–そのタームの記事一覧がリストアップされる形を想定→失敗

    (1)は意図通りの表示ができたのですが(2)については意図通りではなく
    (1)と全く同じ表示になってしまいました。
    taxonomy-タクソノミー名.phpがきちんと読み込まれていないように見えます。

    ということで、タクソノミーテンプレートを作る際、ファイル名など何か特別に気をつけるべきことがもしあれば、教えてくださいませ。

    0
    #6064
    キタジマ タカシ
    キーマスター
    339

    下記のプラグインをインストールすると、ページ上部の管理バーでどのテンプレートが読み込まれているかを確認できるようになります。結構便利なので入れておくと良いかもしれません。

    僕の環境で 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
    #6086
    Mio Urakami
    参加者
    1

    ありがとうございます。
    さっそくShow Current Templateをインストールしたところ、表示されているのは
    archive.php
    でした。

    taxonomy.phpという空のファイルを入れて、タームページを開いてみたのですが、やはりarchive.phpがあたっている、と出ました…

    その後、taxonomy.phpに教えていただいた「レイアウトファイルとビューファイルを呼び出すコントローラー」の記述だけを書いて、taxonomy-タクソノミー名.phpも設置したのですが、やはりarchive.phpがあたっていました…

    もう少し色々試してみようと思います。

    0
    #6095
    キタジマ タカシ
    キーマスター
    339

    うおー、まじですか。。

    例えば、Snow Monkey 以外のテーマに変更してみて、そこに taxonomy-タクソノミー名.php を入れたらどうなるか試してみると切り分けできるかと思います。それでちゃんと表示されれば Snow Monkey の問題なので。

    もし他のテーマでうまくいくようであれば、ちょっと僕の環境では再現できなかったので、可能であればサイトにログインさせてもらって見てみると何かわかるかもしれません。

    0
    #6097
    Mio Urakami
    参加者
    1

    おお、なるほどです。

    ところですみません、これお客様もみているテストサイトなので、今すぐ別のテーマを当てるのが難しいので、あとで別の環境にインストールして試して、ご報告しますね。

    0
    #6142
    Mio Urakami
    参加者
    1

    おはようございます。違うサーバーに類似のサイトを作って、違うテーマ(Twenty Seventeen)を当ててみました。

    無事にtaxonomy.phpで表示されたので、Snow Monkey固有の問題かもしれません。
    (そちらの環境で、Snow Monkeyと私が作った子テーマと両方当ててみましたが、そちらにはやはりarchive.phpが当たっていました)

    違うサーバーに作ったテスト用のサイトについて、ご利用規約ページにあるメアド当てに、ログイン情報をお送りしてよろしいですか?

    0
    #6145
    キタジマ タカシ
    キーマスター
    339

    うーむなるほど…。

    違うサーバーに作ったテスト用のサイトについて、ご利用規約ページにあるメアド当てに、ログイン情報をお送りしてよろしいですか?

    メールでも Messanger でも大丈夫です。良きほうにお願いします!

    0
    #6222
    Mio Urakami
    参加者
    1

    キタジマさん、諸々アドバイスありがとうございました。無事に解決できたので、いただいたアドバイスも含めて解決した方法を報告いたしますね。

    (1)taxonomy.phpを設置する子テーマ階層が違っていたので、修正。

    正しい配置方法

    snow-monkey-child/
    ├ /templates/
    │ └ /view/
    │    └ taxonomy-タクソノミー名.php
    └ taxonomy.php
    
    0
    #6223
    Mio Urakami
    参加者
    1

    (2)taxonomy.phpの中に#6064でアドバイスいただいたビューファイルを読み込む記述を追加。

    ただし、$controller->render( 'taxonomy', 'タクソノミー名' );
    $controller->render( 'taxonomy-タクソノミー名' );に修正。

    0
    #6224
    Mio Urakami
    参加者
    1

    ということで…キタジマさん、もし何か間違っているところがあればご指摘くださいね!
    いろいろありがとうございました。

    0
    #6240
    キタジマ タカシ
    キーマスター
    339

    解決方法まとめて頂いてありがとうございます!!

    $controller->render( 'taxonomy', 'タクソノミー名' ); が正しく動かないのはバグで、v4.3 以降では正しく動作するようになります。

    トピック、クローズします。

    0
    #14618
    Mio Urakami
    参加者
    1

    お世話になっております。この件について、追加で質問が出たので、再度トピックをオープンします。

    このサイトについて、WPver5にアップデートする作業をいま行っていますが、このときに作ったtaxonomy.phpでエラーが出ました。

    Fatal error: Uncaught Error: Class ‘Mimizuku_Controller’ not found in …(url)

    というエラーです。ver5へのアップデートでこの部分も何か変更が必要でしょうか?

    を見たのですが、よく分かりませんでした。

    ではよろしくお願いいたします。

    0
    #14620
    キタジマ タカシ
    キーマスター
    339

    v5 から、 Mimizuku_Controller がなくなりましたので書き換えが必要です。現状の taxonomy.php のコードをまるごと貼り付けてもらえますでしょうか?

    0
    #14644
    Mio Urakami
    参加者
    1
    $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
    #14649
    キタジマ タカシ
    キーマスター
    339

    まるごと下記に差し替えるとどうでしょうか?

    <?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
15件の投稿を表示中 - 1 - 15件目 (全16件中)
  • トピック「カスタムタクソノミーのタームページについて」には新しい返信をつけることはできません。