サポート » 使い方全般 » singleページの振り分けについて教えていただけないでしょうか?

  • 解決済 warashi

    (@warashi)


    WP初級です。
    singleページの振り分けについて教えていただけないでしょうか?
    カスタムでは無く投稿です。
    テーマもほとんど独自のものです。

    まず、カテゴリは以下のようになっています。
    ・blog
    ・gallery(親)
     gallery-house(子)
     gallery-reform(子)
     gallery-others(子)

    それで、galleryの方なのですが、、、
    リストページが全リスト、子カテゴリごとの4ページあります。
    各リストページから表示されるsingleページのナビゲーションを以下のようにしたいのです。
    ・全リストページから表示した場合→singleページのナビゲーションはgallery(親)全て表示したい
     ※これが出来ません。

    ・各子カテゴリリストページから表示した場合→singleページのナビゲーションはそのリストページの子カテゴリのみ
     ※これは出来ています。
     
     
    各投稿ページはカテゴリを親と子の両方を指定しています。
    例)gallery-houseの場合、gallery(親)とgallery-house(子)を指定
    ※gallery(親)のみの指定はありません。
     
     
    リスト(固定)ページは以下のようになっています。
    ・page-gallery.php
     ’category_name’ => ‘gallery’,
     ※galleryの全リストを表示

    ・page-gallery-house.php
     ’category_name’ => ‘gallery-house’,

    ・page-gallery-reform.php
     ’category_name’ => ‘gallery-reform’,

    ・page-gallery-others.php
     ’category_name’ => ‘gallery-others’,
     
     
    singleページの振り分けは以下のようにしています。
    function add_category_gallery_template( $single_template ) {
    $new_template = $single_template;

    $post = get_queried_object();
    if ( has_category( ‘gallery-house’, $post ) ) {
    $single_gallery_template = locate_template( ‘single-gallery-house.php’ );
    if( !empty( $single_gallery_template ) )
    $new_template = $single_gallery_template;
    }
    else if ( has_category( ‘gallery-others’, $post ) ) {
    $single_gallery_template = locate_template( ‘single-gallery-others.php’ );
    if( !empty( $single_gallery_template ) )
    $new_template = $single_gallery_template;
    }
    else if ( has_category( ‘gallery-reform’, $post ) ) {
    $single_gallery_template = locate_template( ‘single-gallery-reform.php’ );
    if( !empty( $single_gallery_template ) )
    $new_template = $single_gallery_template;
    }
    else if ( has_category( ‘blog’, $post ) ) {
    $single_gallery_template = locate_template( ‘single-blog.php’ );
    if( !empty( $single_gallery_template ) )
    $new_template = $single_gallery_template;
    }

    return $new_template;
    }
    add_filter( ‘single_template’, ‘add_category_gallery_template’ );
     
     
    singleページのナビゲーションは以下のようにしています。
     gallery-house(子)ID:2
     gallery-reform(子)ID:3
     gallery-others(子)ID:4

    ※single-gallery-house.phpの場合
    <div class=”alignleft”><?php previous_post_link(‘%link »’, ‘%title’, TRUE, ‘3,4’); ?></div>
    <div class=”alignright”><?php next_post_link(‘« %link’, ‘%title’, TRUE, ‘3,4’); ?></div>
     
     
    投稿ページのカテゴリを親・子両方指定した理由は、
    page-gallery.php → single-gallery.php とし、

    single-gallery.phpのナビゲーションを、以下のようにすればgallery(親)を指定した投稿が全て表示される、と考えたからです。
    <div class=”alignleft”><?php previous_post_link(‘%link »’, ‘%title’, TRUE, ”); ?></div>
    <div class=”alignright”><?php next_post_link(‘« %link’, ‘%title’, TRUE, ”); ?></div>
     
     
    この状態で、page-gallery.php からクリックした場合は single-gallery.php を表示させるというのは可能でしょうか?
    もしくは、カテゴリの指定等を根本的に見直すべきでしょうか?

    自分なりにあれこれやってみましたが、どうしてもここから進めませんでした。
    お手数ですが、宜しくお願いいたします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • 固定ページでカテゴリーの一覧を表示しようとされているんですかね?
    一般的にはカテゴリー一覧ページにはcategory.phpとかarchive.phpなんかに書くと思います。
    固定ページとかは、特別な理由がなければ必要ないのではないかと思います。
    親カテゴリーのみだったらcategory-gallery.phpを作れば親カテゴリーだけに適用されるテンプレートになります。

    http://wpdocs.osdn.jp/テンプレート階層#.E3.82.AB.E3.83.86.E3.82.B4.E3.83.AA.E3.83.BC.E8.A1.A8.E7.A4.BA

    スレッド開始 warashi

    (@warashi)

    ikaring 樣

    内容が少々複雑ですので、やはり伝わりにくいでしょうか?
    お聞きいたいのはsingleページの振り分けです。
     
    >固定ページでカテゴリーの一覧を表示しようとされているんですかね?
    私の勉強不足もありますが、とりあえずこれは出来ておりますのでよしとしてください。
     
    >固定ページとかは、特別な理由がなければ必要ないのではないかと思います。
    これもなんらかの理由があるということにしておいてください。

    宜しくお願いいたします。

    モデレーター jim912

    (@jim912)

    Webの表示というものは、そもそもどこから来たという情報は持っていません。(リファラーはありますが、信頼おけるものではありません。)

    このため、やるのであれば、意図的に情報を引き渡す必要があります。
    また、ナビゲーションで遷移した次のページでも同一条件のナビゲーションである必要があります。

    条件は違いますが、以前の質問で比較的似た質問がありましたので、同様の手法が使えるのではと思います。

    投稿者アーカイブ→個別投稿ページの時のみ、ページ送りを制御したい

    スレッド開始 warashi

    (@warashi)

    jim912 樣

    ありがとうございます。
    少し時間がかかるかと思いますが、進捗をご報告させていただきます。

    宜しくお願いいたします。

    スレッド開始 warashi

    (@warashi)

    何とか出来ました。
    あれこれ考えた結果、singleページの振り分けということではなく、SESSIONでナビゲーションを切り替えることにしました。

    page-galleryを表示
    →SESSION 0をセット

    page-gallery-house、page-gallery-reform、page-gallery-othersを表示
    →SESSION 1をセット

    SESSIONが0の場合は TRUE, ”); とし、そうでない場合は除外IDを指定することで実現できました。
    賛否あるかと思いますが、しばらくこれで様子を見ようと思います。

    ありがとうございました。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「singleページの振り分けについて教えていただけないでしょうか?」には新たに返信することはできません。