フォーラムへの返信

2件の返信を表示中 - 16 - 17件目 (全17件中)
  • トピック投稿者 takaraism

    (@takaraism)

    アドバイスありがとうございました。
    途中で仕様が変わり、アドバイスを元に強引に解決致しました(笑

    そこでアドバイスを頂きたいのですが、

    この<dl>~</dl>を丸ごと表示させるようにし、
    category=6に記事がない場合は<dl>~</dl>を丸ごと表示させない
    ・・・という仕様だった物ですが、新たに

    <div class=”wrapper”>

      <?php
      global $post;
      $tmp_post = $post;
      $myposts = get_posts(‘numberposts=7&category=6’);
      foreach($myposts as $post) :
      setup_postdata($post);
      ?>
      <dt><?php echo date(“Y/m/d”, strtotime($post->post_date)); ?></dt>
      <dd>”><?php the_title(); ?></dd>
      <?php endforeach; ?>
      <?php $post = $tmp_post; ?>
      </dl>
      </div>

      上記のようなソースで、記事がない場合はこの<div class=”wrapper”>~</div>を丸ごと消す、という形になりました。
      アドバイスを頂いた内容ではき出すと、
      記事がない場合は確かに消えたのですが、
      記事が2件以上になった場合、<dl>~</dl>部分が二個はき出されてしまいデザインが崩れてしまうようになりました。

      思案した結果、

      <div class=”wrapper”>

      の部分を

      <?php
      global $post;
      $tmp_post = $post;
      $myposts = get_posts(‘numberposts=1&category=6’);
      foreach($myposts as $post) :
      setup_postdata($post);
      ?>
      <div class=”wrapper”>

      <?php endforeach; ?>
      <?php $post = $tmp_post; ?>

      と強引にくくり上げ、
      最後の閉じタグである</div>も同じように記述。
      1つのソースを3ブロックに分けてそれぞれ記事の有無をチェックさせて出し入れさせる・・・というかなり強引な形で表示させることが出来ました。

      ただ、あまりにも強引すぎるので、もっとスマートなやり方はないかなと思っています。
      後学のためにも、改めてアドバイスを頂けたら嬉しいです。
      お手数をおかけ致しますがよろしくお願い致します。

    トピック投稿者 takaraism

    (@takaraism)

    >gogowebさん

    アドバイスありがとうございます。無事解決しました。

    <?php $posts = get_posts(‘numberposts=7&category=6’);
    foreach($posts as $post): ?>
    <dt><?php echo date(“Y/m/d”, strtotime($post->post_date)); ?></dt>
    <dd>”><?php the_title(); ?></dd>
    <?php endforeach; ?>

    の部分を

    <?php
    global $post;
    $tmp_post = $post;
    $myposts = get_posts(‘numberposts=7&category=6’);
    foreach($myposts as $post) :
    setup_postdata($post);
    ?>
    <dt><?php echo date(“Y/m/d”, strtotime($post->post_date)); ?></dt>
    <dd>“><?php the_title(); ?></dd>
    <?php endforeach; ?>
    <?php $post = $tmp_post; ?>

    としたら、無事カスタムフィールドBが出るようになりました。

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

2件の返信を表示中 - 16 - 17件目 (全17件中)