サポート » 使い方全般 » 特定のカテゴリーに属する記事がある場合、特定の固定ページに内容を出力したい

  • 解決済 kaori914

    (@kaori914)


    初歩的な質問で申し訳ありませんが、ご存知の方がいらっしゃいましたらご教授いただけると幸いです。

    【やりたいこと】
    特定のカテゴリーAに属する記事がある場合にだけ、
    特定の固定ページBに
    「Aのカテゴリーに属する記事の最新5件を一覧表示」させたいです。

    【わからないこと】
    「特定のカテゴリーAに属する記事がある場合にだけ」という条件分岐の方法がわかりません。

    【現状のPHPファイルの一部】
    <!– Bのページにのみ表示 –>
    <?php elseif(is_page( ‘B’ )): ?>

    <!– Aというカテゴリーに属する記事一覧を表示する –>
    <h2>Aカテゴリーに属する記事の一覧</h2>
    <?php
    $posts = get_posts(‘category=A&showposts=5’);
    global $post;
    ?>
    <?php
    if($posts): foreach($posts as $post): setup_postdata($post); ?>
    <div class=”row”>
    <div class=”large-2 columns”>
    ” id=”post-<?php the_ID(); ?>”>” alt=”<?php the_title(); ?>”>
    </div>
    <div class=”large-10 columns”>
    <span class=”day”><?php echo date(“Y年m月d日”, strtotime($post->post_date)); ?></span><br/>
    <h3>” id=”post-<?php the_ID(); ?>”><?php the_title(); ?><h3>
    </div>
    </div>
    <?php endforeach; endif; ?>

    • このトピックはkaori914が1年、 10ヶ月前に変更しました。
4件の返信を表示中 - 1 - 4件目 (全4件中)
  • 貼っていただいたコードが崩れていてよくわかりませんが
    (入力ボックス内で コード部分だけを範囲選択した状態で code ボタンを押すといいはず)

    get_posts() の部分が違っているような。
    @kaori914 さんのコード:

    $posts = get_posts('category=A&showposts=5');
    

    カテゴリーのキーワードは category_name が正しいです。
    このときカテゴリーのスラッグを指定します。

    $posts = get_posts( 'category_name=カテゴリーのスラッグ&posts_per_page=5' );
    
    • この返信は1年、 10ヶ月前にgblsmが編集しました。

    @gblsm
    ご丁寧に回答をくださってありがとうございます。
    説明不足で申し訳ありません。。少し質問内容を訂正させてください。


    【やりたいこと】

    ※もし「カテゴリーIDがAのカテゴリーに属する記事があったら」
    特定の固定ページBに
    「Aのカテゴリーに属する記事の最新5件を一覧表示」させたいです。

    【わからないこと】
    下のコードで、

    『特定の固定ページBに
    「Aのカテゴリーに属する記事の最新5件を一覧表示させる」』
    まではできたのですが、それだとカテゴリーIDがAのカテゴリーに属する記事がない場合にも

    <h2>Aカテゴリーに属する記事の一覧</h2>

    の部分が表示されてしまうので、
    「カテゴリーIDがAのカテゴリーに属する記事があった場合のみ」という条件を下のコードに追記したいのですが、どう書いたら良いかわかりません。。
    そもそも↑のような条件を追加することはできるのでしょうか?
    もし他に良い方法がありましたら教えていただきたいです。

    わかりにくい説明しかできず、すみませんが何卒よろしくお願いいたします(>_<)

    【現状のPHPファイルの一部】

    
    
    <!– Bのページにのみ表示 –>
    <?php elseif(is_page( ‘B’ )): ?>
    <!– Aというカテゴリーに属する記事一覧を表示する –>
    <h2>Aカテゴリーに属する記事の一覧</h2>
    <?php
    $posts = get_posts(‘category=A&showposts=5’);
    global $post;
    ?>
    <?php
    if($posts): foreach($posts as $post): setup_postdata($post); ?>
    <div class=”row”>
    <div class=”large-2 columns”>
    <a href="<?php the_permalink(); ?>" id="post-<?php the_ID(); ?>"><img src="<?php echo catch_that_image(); ?>" alt="<?php the_title(); ?>"></a>
    </div>
    <div class=”large-10 columns”>
    <span class=”day”><?php echo date(“Y年m月d日”, strtotime($post->post_date)); ?></span><br/>
    <h3 class="ichiran"><a href="<?php the_permalink(); ?>" id="post-<?php the_ID(); ?>"><?php the_title(); ?></a><h3></div>
    </div>
    <?php endforeach; endif; ?>
    • この返信は1年、 10ヶ月前にkaori914が編集しました。
    • この返信は1年、 10ヶ月前にkaori914が編集しました。

    <h2>Aカテゴリーに属する記事の一覧</h2>if ( $posts ): の直後へ移しましょう。

    <!-- Bのページにのみ表示 -->
    <?php elseif ( is_page( 'B' ) ): ?>
    <!-- Aというカテゴリーに属する記事一覧を表示する -->
    <?php
    $posts = get_posts( 'category=カテゴリーAのID&posts_per_page=5' );
    if ( $posts ): ?>
    <h2>Aカテゴリーに属する記事の一覧</h2>
    <?php
    global $post;
    foreach ( $posts as $post ): setup_postdata( $post ); ?>
    <div class="row">
      <div class="large-2 columns">
        <a href="<?php the_permalink(); ?>" id="post-<?php the_ID(); ?>"><img src="<?php echo catch_that_image(); ?>" alt="<?php the_title(); ?>"></a>
      </div>
      <div class="large-10 columns">
        <span class="day"><?php echo date( "Y年m月d日", strtotime( $post->post_date ) ); ?></span><br/>
        <h3 class="ichiran"><a href="<?php the_permalink(); ?>" id="post-<?php the_ID(); ?>"><?php the_title(); ?></a><h3>
      </div>
    </div>
    <?php endforeach; endif; ?>
    
    • この返信は1年、 10ヶ月前にgblsmが編集しました。

    @gblsm

    教えていただいた方法で上手くいきました!
    とても丁寧に教えてくださり、本当にありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「特定のカテゴリーに属する記事がある場合、特定の固定ページに内容を出力したい」には新たに返信することはできません。