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

0
いいねをした人: 居ません
  • このトピックには15件の返信、2人の参加者があり、最後にMio Urakamiにより5年前に更新されました。
15件の投稿を表示中 - 1 - 15件目 (全16件中)
  • 投稿者
    投稿
  • #6036
    Mio Urakami
    参加者
    3

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

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

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

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

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

    0
    いいねをした人: 居ません
    #6064
    キタジマ タカシ
    参加者
    2252

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

    僕の環境で 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
    参加者
    3

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

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

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

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

    0
    いいねをした人: 居ません
    #6095
    キタジマ タカシ
    参加者
    2252

    うおー、まじですか。。

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

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

    0
    いいねをした人: 居ません
    #6097
    Mio Urakami
    参加者
    3

    おお、なるほどです。

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

    0
    いいねをした人: 居ません
    #6142
    Mio Urakami
    参加者
    3

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

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

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

    0
    いいねをした人: 居ません
    #6145
    キタジマ タカシ
    参加者
    2252

    うーむなるほど…。

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

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

    0
    いいねをした人: 居ません
    #6222
    Mio Urakami
    参加者
    3

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

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

    正しい配置方法

    snow-monkey-child/
    ├ /templates/
    │ └ /view/
    │    └ taxonomy-タクソノミー名.php
    └ taxonomy.php
    
    0
    いいねをした人: 居ません
    #6223
    Mio Urakami
    参加者
    3

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

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

    0
    いいねをした人: 居ません
    #6224
    Mio Urakami
    参加者
    3

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

    0
    いいねをした人: 居ません
    #6240
    キタジマ タカシ
    参加者
    2252

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

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

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

    0
    いいねをした人: 居ません
    #14618
    Mio Urakami
    参加者
    3

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

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

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

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

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

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

    0
    いいねをした人: 居ません
    #14620
    キタジマ タカシ
    参加者
    2252

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

    0
    いいねをした人: 居ません
    #14644
    Mio Urakami
    参加者
    3
    $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
    キタジマ タカシ
    参加者
    2252

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

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

ドキュメント

Snow Monkey の設定方法やマニュアルを掲載しています。

ドキュメント

フォーラム

Snow Monkey の使い方やカスタマイズについてのご質問・ご要望等はサポートフォーラムで行っています。サポートフォーラムは誰でも閲覧できますが、書き込みできるのは Snow Monkey 購入者のみとなります。

サポートフォーラム

よくあるご質問

Snow Monkey のサービスについて不明な点がある場合は、まずはよくあるご質問をご確認ください。

よくあるご質問

お問い合わせ

よくあるご質問を見ても解決しなかった場合、試用版の申請については問い合わせフォームからお願いいたします。

お問い合わせ

Snow Monkey は Gutenberg ブロックエディターに対応した 100%GPL の WordPress テーマです。拡張性を意識した開発をおこなっており、カスタマイザーとブロックでスピーディーにサイトを立ち上げるだけでなく、CSS やフックを駆使した高度なカスタマイズにも柔軟に対応できます。