• 解決済 tsugua

    (@tsugua)


    phpが難しく、詳しい方教えてもらえないでしょうか。
    トップページ、カテゴリーページのサイドに記事のリストを作っています。

    ※同じ内容のトッピックを投稿したのですが、コードを逆クォートで囲んでなかったので、崩れていました。
    再編集ができないので再投稿します。

    <h3>最近の記事</h3>
    <ul id="popular">
    <?php
    $myposts = get_posts('numberposts=5&category=14');
    ?>
    <?php
    if($posts): foreach($myposts as $post): setup_postdata($post); ?>
    <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
    <?php
    endforeach;
    endif;
    ?>
    </ul>

    カテゴリーがいくつかあり、リンク先はsingle.phpのテンプレートなのですが、
    特定のカテゴリー(ccc)のみcategory.phpにしたいのです。

    (親カテゴリー)xxx
    (子カテゴリー)aaaの記事はsingle.php
    (子カテゴリー)bbbの記事はsingle.php
    (子カテゴリー)cccの記事はcategory-ccc.php

    検索してみたのですが、調べ方が悪いのか見つかりませんでした。
    どなたか教えていただけると助かります。
    よろしくお願い致します。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • in_category( 'ccc' )で条件分岐して、trueのときはhrefを次のように出力できるかと思います。

    $category_id = get_cat_ID( 'ccc' );
    echo get_category_link( $category_id );
    トピック投稿者 tsugua

    (@tsugua)

    ikaringさん
    ありがとうございます。
    教えていただいたことを参考に下記のコードを作ってみたのですが、エラーが出てしまいます。
    どこが間違っているか教えて頂けないでしょうか。
    よろしくお願い申し上げます。

    
    <ul id="popular">
    <?php
    $myposts = get_posts('numberposts=5&category=14');
    foreach($myposts as $post):
    $category_id = get_cat_ID('ccc');
    ?>
    <li>
    <?php if(in_category('ccc')) : ?>
    <a href="<?php echo get_category_link( $category_id );?>"><?php the_title(); ?></a>
    <?php else: ?>
    <a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
    <?php endif; ?>
    </li>
    </ul>

    どんなエラーでしょうか。
    気になったのはsetup_postdata($post);が抜けていることでしょうか。

    あと、忘れてましたがリンクの出力はエスケープした方が良かったです。
    echo esc_url( get_category_link( $category_id ) );

    トピック投稿者 tsugua

    (@tsugua)

    ikaringさん
    ありがとうございます。
    シンタックスエラーが出ていました。
    <?php endforeach; ?>
    を入れて解決しました。

    最終的に下記のコードでやりたいことができました。
    残しておきます。
    ありがとうございました。

    <?php
    $args = array(/* 配列に複数の引数を追加 */
         'category' => 14, /* 表示するカテゴリーを指定 */
         'posts_per_page' => 5, /* 表示するページ数 */
    ); ?>
    <?php
    $myposts = get_posts($args ); ?>
    <?php global $post;
    foreach($myposts as $post):
    setup_postdata($post);
    $cat=get_category_by_slug('ccccc'); 
    ?>
    <li>
    <?php if(in_category('ccccc')) : ?>
    <a href="<?php echo get_category_link( $cat->cat_ID);  ?>">
    <?php the_title(); ?>
    </a>
    <?php else: ?>
    <a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
    <?php endif; ?>
    <?php wp_reset_query(); ?>
    </li>
    <?php endforeach; ?>
    </ul>
4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「特定のカテゴリーのリンク先をcategory.phpにしたい」には新たに返信することはできません。