サポート » テーマ » 条件分岐でarrayを使わず「ページAとその子ページ」を出力するには?

  • 解決済 nekokonnichiha

    (@nekokonnichiha)


    以下のような事で、自動で子ページを追加する方法はありますでしょうか。

    ■ページ構成
     -about  ->黄色の花の画像を表示
     -concept ->ピンクの花の画像を表示
     -gallery  ->オレンジの花の画像を表示
      –2009 ->オレンジの花の画像を表示(galleryと同じもの)
      –2010 ->(galleryと同じもの)
      –2011 ->(galleryと同じもの)

    ■page.phpに書いているコード

    <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
    <?php if (is_page('about')) { ?>
      <img src="./hoge.gif" alt="黄色の花の画像" />
    <?php } else if (is_page(’concept’)) { ?>
      <img src="./hoge.gif" alt="ピンクの花の画像" />
    <?php } else if (is_page(array('gallery','2009','2010','2011'))) { ?>
      <img src="./hoge.gif" alt="オレンジの花の画像" />
    <?php } ?>
    続く…

    ■したいこと
    今後、galleryの子ページが増えて行った際に、’2012′,’2013’と手書きで増やさず、自動で追加していってほしい。
    理想のコード↓

    <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
    <?php if (is_page('about')) { ?>
      <img src="./hoge.gif" alt="黄色の花の画像" />
    <?php } else if (is_page(’concept’)) { ?>
      <img src="./hoge.gif" alt="ピンクの花の画像" />
    <?php } else if (is_page(<strong>ギャラリーと、その子ページ</strong>))) { ?>
      <img src="./hoge.gif" alt="オレンジの花の画像" />
    <?php } ?>
    続く…

    サイトマップ等で、子ページを出力する方法は分かったのですが、条件分岐で使う際の書き方が分かりませんでした。。

    もし分かる方いらっしゃったら、ご教授お願いいたします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • 親ページ gallery のページID が 15 だと仮定して、
    <?php } else if ( is_page('gallery') || !strcmp($post->post_parent, 15) ) { ?>
    とすればOKだと思います。

    galleryの子ページが増えて行った際に

    ページを増やしていくと、そのページ分だけ rewrite_rule が増えていくので、場合によってはカスタム投稿タイプを利用するのもありだと思います。

    そんなの分かってる、余計なお世話! だったらごめんなさい。

    トピック投稿者 nekokonnichiha

    (@nekokonnichiha)

    回答をいただいて、参考にさせていただきながら、お返事が遅れてしまいました。
    ありがとうございます!

    いただいた回答で思い通りの結果を得られました!しかし、ページID(数字)を使えない状態でしたので、以下のようなコードに落ち着きました。

    <div id=”content_wrap”>
    <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
    <?php if ( is_page() ) { ?>
    <?php $parent_slug = get_page_uri($post->post_parent); ?>
    <div id=”<?php echo $parent_slug ;?>”class=”corner_t”>
    <?php } else { ?>
    <div id=”notfound” class=”corner_t”>
    <?php } ?>
    </div><!–content_wrap–>

    投稿のご提案、ありがとうございます!今回は頻度が少なかったのでこのような仕様にしましたが、次回の参考にさせて頂きたいと思います。

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

    LVP8様のコードで私もできました!
    ただ、孫ページまでは影響しないようなのですが、対処法はございませんか?

    やりたいことは、以下のコードで
    グローバルナビゲーションで現在のメニューに#1のimgを表示させることです。
    上記の例で言えば
     -gallery
      –2009
       —6月
    です。

    <?php if(is_page('project') || !strcmp($post->post_parent, 2282)): ?>
     <li><p><img src="#1"></p>
    <?php else: ?>
     <li><a href="<?php bloginfo('url'); ?>/project"><img src="#2"></a>
    <?php endif; ?>

    ご教授頂けませんか?
    よろしくお願い致します!

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「条件分岐でarrayを使わず「ページAとその子ページ」を出力するには?」には新たに返信することはできません。