サポート » テーマ » 複数のカスタム投稿タイプで1つのカスタム分類を用いた際のテンプレート

  • 複数のカスタム投稿タイプにて1つのカスタム分類を用いる場合、
    http://www.example.com/posttypeA/taxonomy/term/”
    http://www.example.com/posttypeB/taxonomy/term/”
    上記のような複数のカスタム投稿タイプアーカイブテンプレート内のループで、”posttypeA”と”posttypeB”が混在したループが生成されてしまいます。
    http://www.example.com/posttypeA/taxonomy/term/”
    上記のアーカイブページでは”posttypeA”の投稿が。
    http://www.example.com/posttypeB/taxonomy/term/”
    上記のアーカイブページでは”posttypeB”の投稿がそれぞれ表示されるよう、
    現在は以下の様な、若干いびつなコードを書いて対処しています。

    `<?php
    /* HTML出力前 */
    $request_uri = $_SERVER[‘REQUEST_URI’]; // “/posttype/taxonomy/term/”
    ?>`

    `
    <?php
    /* ループ前 */
    $uriDirectoryArray = explode( “/” , $request_uri );
    if( is_array( $uriDirectoryArray ) ){
    query_posts( array(
    ‘post_type’ => $uriDirectoryArray[1], // “posttypeA” か “posttypeB”
    ‘tax_query’ => array(
    array(
    ‘taxonomy’ => ‘region’,
    ‘terms’ => $uriDirectoryArray[3],
    ‘field’ => ‘slug’
    )
    ),
    ‘posts_per_page’ => 10
    ) );
    }
    ?>
    `

    よりスマートに指定出来ないものでしょうか?
    よろしくお願いします。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • 混在したループが生成されるのは、どのテンプレートで表示したときですか?
    archive-カスタム投稿タイプのスラッグ.php
    taxonomy-タクソノミー-ターム.php
    taxonomy-タクソノミー.php
    taxonomy.php
    archive.php

    トピック投稿者 sola

    (@solatc)

    gblsm 様

    メッセージありがとうございます。

    > taxonomy-タクソノミー.php
    > taxonomy.php

    上記で確認済みです。
    恐らく、ご提示いただいた他の2つのテンプレートでも混在するだろうと思います。

    試しにプラグインを使ってカスタム投稿タイプとカスタムタクソノミーを作り、solaさんの状況が再現しました。

    プラグイン Custom Post Type UI を使って:
    /ptA ⇒ 投稿タイプ ptA のアーカイブ
    /ptB ⇒ 投稿タイプ ptB のアーカイブ
    /taxC/termD ⇒ タクソノミー taxC のターム termD のアーカイブ

    プラグイン Custom Post Type Permalinks を使って:
    /ptA/taxC/termD ⇒ ptA と ptB が混在したアーカイブが表示される。

    しかし /ptA?taxC=termD や /ptB?taxC=termD だと混在せず表示されるので、Custom Post Type Permalinks によるパーマリンクのリライトがうまく働いていないみたいです。

    もし、このプラグインをお使いでしたら作者さんに連絡をとってみてはどうでしょう。一年前に下記のようなバグ報告があったので関係しているかもしれません。
    [resolved] Archive taxomomies with many CPT

    トピック投稿者 sola

    (@solatc)

    gblsm 様

    引き続きメッセージありがとうございます。

    > Custom Post Type Permalinks によるパーマリンクのリライトがうまく働いていないみたいです。
    プラグインのバグだったのですね。
    確かに「Custom Post Type Permalinks」を用いております。
    全く気付きませんでした。

    「Custom Post Type Permalinks」を用いず、上手くリライト出来れば良いのですが、この際勉強してみようと思います。

    ありがとうございます。

    プラグインの修正方法を別のトピックに書きました。リライトルールの参考にもなると思います。
    https://ja.forums.wordpress.org/topic/148586

    作者さんからコメントが貰えるとよいのですが。

    プラグイン作者です。
    今更ですが、この問題についてですが、タクソノミーのリンク周りはあんまり複雑なコトが出来ません。get_term_link等で、

    • リンクを生成する場合、複数のpost_typeに紐付いている場合に、どちらのモノか特定が出来ない
    • post_typeパラメーターを追加すると、タクソノミーテンプレートより、カスタム投稿タイプのテンプレートが先に読まれる

    等の問題が発生するので、URLの見た目だけ変更するという実装になっています。
    一応、1.0.0で、post_typeパラメーターを追加するかどうかの設定を足しました。

    こちらで対処することが出来るかと思いますが、テンプレートの読み込みなど、かなり挙動が変更されてしまう部分がありますので、ご注意下さい。

    gblsm

    (@gblsm)

    Toro_Unitさん、コメントありがとうございます。テンプレートの読み込み順も影響受けてしまうんですね。うまく働いていないみたい…なんて言ってしまい申し訳ありませんでした。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「複数のカスタム投稿タイプで1つのカスタム分類を用いた際のテンプレート」には新たに返信することはできません。