サポート » 使い方全般 » 条件分岐で行き詰っています。

  • 解決済 LUARCE

    (@luarce)


    ここ数日、ずっと行き詰まっています。
    どうしても解決ができなく本当に困って投稿させて頂きました。

    皆様、お忙しい最中とは思いますが、何卒ご教示頂けませんでしょうか。

    よろしくお願い致します。

    現在、WordPressテーマのヘッダーphpに条件分岐でH1をつけようと取り組んでいます。
    今できていることは、
    ・トップページのh1表示
    ・投稿、固定ページにカスタムフィールドにh1を作り、それぞれのページに表示
    ・カテゴリー、タグの一覧ページへの表示
    ・お知らせの一覧と詳細ページへの表示

    できていないこと
    ・通常の投稿のアーカイブページへの表示 (年月の記事一覧)
     ↑
     どちらか片方までなら表示できる
     ↓
    ・製品カテゴリーで設定した名前での一覧ページ(アーカイブ)への表示
     (インテリア用品といったカテゴリー)

    となります。

    もともとのテンプレートには、製品紹介用のカスタム投稿タイプが用意されていました。
    管理画面上のメニューでは、
    製品紹介
    -新規追加
    -製品カテゴリー
    となっています。

    できていないというのは、この製品カテゴリーのところになり、
    WordPress Codexの条件分岐タグページを見ながらいろいろ組み替えたり
    したのですが、どうしてもうまく表示することができないでおります。

    ソースは以下のようにしています。

    <?php if(is_front_page() && is_home()): ?>
    <div class=”area-h1″>
    <h1>トップページh1</h1>
    </div>

    <?php elseif(is_category()): ?>
    <div class=”area-h1″>
    <h1>カテゴリーh1</h1>
    </div>

    <?php elseif(is_tag()): ?>
    <div class=”area-h1″>
    <h1>タグh1</h1>
    </div>

    <?php elseif(is_singular( ‘news’)): ?>
    <div class=”area-h1″>
    <h1>お知らせの詳細ページh1</h1>
    </div>

    <?php elseif(is_post_type_archive( ‘product’)):?>
    <div class=”area-h1″>
    <h1>製品の一覧ページh1</h1>
    </div>

    <?php elseif(is_singular( ‘product’)): ?>
    <div class=”area-h1″>
    <h1>製品の詳細ページh1</h1>
    </div>

    <?php elseif(is_single()): ?>
    <div class=”area-h1″>
    <h1>通常の投稿h1</h1>
    </div>

    <?php elseif(is_archive()): ?> <div class=”area-h1″>
    <h1><?php the_time(‘Y’); ?>年<?php the_time(‘M’); ?>の記事一覧 | ここが表示されるか</h1>
    </div>

    ↓その後いろいろいじっているのですが、入れ子にしてもできませんでした。

    <?php elseif(is_archive()):?>
    <?php if(in_category( ‘product’)):?>
    <div class=”area-h1″>
    <h1><?php single_cat_title(); ?> | 製品のカテゴリー一覧、アーカイページ?</h1>
    </div>
    <?php endif ; ?>
    <?php endif ; ?>

    ■テンプレート構成

    404 テンプレート
    (404.php)
    theme-options.php
    archive-news.php
    archive-product.php
    アーカイブ
    (archive.php)
    bookmark.php
    コメント
    (comments.php)
    フッター
    (footer.php)
    footer_banner.php
    custom_page_link.php
    header-logo.php
    recommend.php
    seo.php
    update_notifier.php
    テーマのための関数
    (functions.php)
    ヘッダー
    (header.php)
    メインインデックスのテンプレート
    (index.php)
    メインインデックスのテンプレート
    (js/index.php)
    navigation.php
    Company No side 固定ページテンプレート
    (page-co-noside.php)
    Company 固定ページテンプレート
    (page-co.php)
    No side Short 固定ページテンプレート
    (page-noside-short.php)
    No side 固定ページテンプレート
    (page-noside.php)
    固定ページテンプレート
    (page.php)
    検索結果
    (search.php)
    サイドバー
    (sidebar.php)
    single-news.php
    single-product.php
    単一記事の投稿
    (single.php)
    taxonomy-product-cat.php
    ad.php
    google_search.php
    news_list.php
    product_list.php
    product_list2.php
    recent_post.php
    recommend_product_list.php
    スタイル
    スタイルシート
    (style.css)
    comment-style.css
    ビジュアルエディターのスタイルシート
    (editor-style.css)
    ie.css
    japanese.css
    style_pc.css
    style_sp.css

    ここ数日、ずっとできないでおりまして、
    おかしなところなどアドバイスを頂けましたら本当に助かります。

    何卒よろしくお願い申し上げます。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • in_category ではなく is_category のパラメーターを使えばよいのでは?
    説明ページの用例が参考になりませんか。

    トピック投稿者 LUARCE

    (@luarce)

    gblsm 様

    お世話になります。
    気にかけて下さいまして本当にありがとうございます。

    そう思いまして、

    <?php elseif(is_category( 'product')):?>
     <div class="area-h1">
     <h1><?php single_cat_title(); ?> | 製品のカテゴリー一覧、アーカイページ?</h1>
    </div>

    という形にして上記に組み込んでみたのですが、
    表示されたのは、
    『<?php the_time(‘Y’); ?>年<?php the_time(‘M’); ?>の記事一覧』(2015年7月の記事一覧)のような形で表示されてしまったため、良く分からなくなってしまいました。

    入れ子というのが良く分かっていないのですが、
    inを使っていろいろ試してもできなく、
    途方にくれています。

    すみません、何かお気づきのことがございましたら
    どうかご教示いただけませんでしょうか。

    よろしくお願い致します。

    ifやelseifの順番を変えてみてください。
    is_categoryは「カテゴリーのアーカイブならどれでも」という条件なので、それより手前にしないと狙ったようにならないと思います。

    もしかすると「投稿タイプ」と「カテゴリー」を混同していませんか?
    カスタム投稿タイプ「製品紹介」の「製品カテゴリー」は、普通の投稿のカテゴリーではなく、カスタム分類ではありませんか。
    そうだとすると、is_tax を使いましょう。

    is_tax( ‘product-cat’ ) ではありませんか? 
    カスタム分類「製品カテゴリー」のスラッグが product-cat のようですので。

    トピック投稿者 LUARCE

    (@luarce)

    gblsm 様

    お世話になります。
    ご親切に本当にありがとうございます。

    今しがたis_categoryでproductを指定し、さらに上部へ記述
    してみましたがやはりできませんでした。

    テーマ構成の中に
    taxonomy-product-cat.phpがあります。

    例えば、そのカテゴリがインテリアだとした場合に、
    表示させたいのは、「インテリア一覧 | サイト名」としたいのですが、
    今は「2015年7月の記事 | サイト名」のような形になっています。

    その時のURLですが、
    http://****.com/product-cat/interior/
    となっていますので、is_taxを使うのが正しいのでしょうか?

    しかしそれもやってみたのですが、うまく変わらなかったため、
    順番の問題でしょうか?

    一度やってみまして、改めてご連絡させていただきたく思います。

    本当にありがとうございます。

    is_taxを、is_archiveより手前にしましょう。

    トピック投稿者 LUARCE

    (@luarce)

    gblsm 様

    お世話になります。
    途中、ご返信ができなくなってしまい
    誠に申し訳ございませんでした。

    今しがた教えて頂きました通り
    行ってみましたところ・・・できました!!!!

    is_archiveの前に書いてみたらできていました。

    今までも何度か書いた時には全然できていなかったのに不思議です。
    (もしかしたらis_archiveの後だった?の鴨です。)

    本当に、本当にありがとうございました。

    また今後とも何卒よろしくお願い申し上げます。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「条件分岐で行き詰っています。」には新たに返信することはできません。