サポート » 使い方全般 » カテゴリごとの記事の一覧(リンク付)をトップページに羅列したい

  • uiwer

    (@uiwer)


    トップページに、「カテゴリ名」とそのカテゴリに属する「最新記事タイトル3件」と「本文の最初の20文字」(※全てに該当リンク付)を羅列したいのですが、どうすれば実現できるでしょうか。以下のようなイメージです。

    ■カテゴリA
    ・記事1(記事1の本文最初の20文字)
    ・記事2(記事2の本文最初の20文字)
    ・記事3(記事3の本文最初の20文字)

    ■カテゴリB
    ・記事1(記事1の本文最初の20文字)
    ・記事2(記事2の本文最初の20文字)
    ・記事3(記事3の本文最初の20文字)

    よろしくお願いします。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • mikadukiman

    (@mikadukiman)

    はじめまして。
    wp_queryとforeachとmb_substr使えば実現できます。

    WP_Queryの使い方
    http://notnil-creative.com/blog/archives/1288
    mb_substrの使い方
    http://jp2.php.net/manual/ja/function.mb-substr.php
    foreachの使い方
    http://jp1.php.net/manual/ja/control-structures.foreach.php

    uiwer

    (@uiwer)

    ご返信ありがとうございます。

    あまり詳しくないので
    http://ja.forums.wordpress.org/topic/3160?replies=5
    の様なソースで教えていただけると助かります…(汗)

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

    Hinaloe

    (@hnle)

    とりあえずリンク先のをそのまま使用して…(テキトーに弄ってください。)

    <?php
    $categories = get_categories();
    foreach($categories as $category) :
      echo '<h5>' . $category->cat_name . '</h5><ul>';
      query_posts('showposts=5&cat=' . $category->cat_ID);
        while(have_posts()) :
          the_post();
          echo '<li>' . get_the_title() . '&nbsp;' . mb_substr( the_excerpt() ,0,20) . '……' . '</li>';
        endwhile;
      wp_reset_query();
      echo '</ul>';
    endforeach;
    ?>

    ただ書きながら気づいたけどこれ非推奨関数使ってグローバル汚染したり連想配列使うべきところをクエリにしてたりあまり綺麗とは言えないから書き直したほうがいいな……

    uiwer

    (@uiwer)

    ご返信ありがとうございます。

    早速試させていただいたのですが、

      <p>記事1の本文(テーマオプションで指定した最初の◯文字)続きを読む…</p>

    • 記事1のタイトル(最初の20文字) ……
    • <p>記事2の本文(テーマオプションで指定した最初の◯文字)続きを読む…</p>

    • 記事2のタイトル(最初の20文字) ……

    の様に、本文と記事タイトルが逆順で表示されてしまいますので、
    解決法を教えていただけましたら助かります。

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

    Hinaloe

    (@hnle)

    すいません。やっと原因分かりました。(自分で書いたコードを確認していなかった)

    mb_substr( the_excerpt() ,0,20)

    mb_substr( get_the_excerpt() ,0,20)

    に修正してください。

    uiwer

    (@uiwer)

    ご返信ありがとうございます。
    教えていただきました下記コード

    <?php
    $categories = get_categories();
    foreach($categories as $category) :
      echo '<h5>' . $category->cat_name . '</h5><ul>';
      query_posts('showposts=5&cat=' . $category->cat_ID);
        while(have_posts()) :
          the_post();
          echo '<li>' . get_the_title() . ' ' . mb_substr( get_the_excerpt() ,0,20) . '……' . '</li>';
        endwhile;
      wp_reset_query();
      echo '</ul>';
    endforeach;
    ?>

    を早速試させていただいたのですが、

    <h5>カテゴリA</h5><ul><li>記事1 記事1の本文最初の20文字……</li><li>記事2 記事2の本文最初の20文字……</li>

    の様にリンクが付きませんでした。

    mb_substr( get_the_excerpt() ,0,20)

    mb_substr( get_the_excerpt() ,0,60)
    にすると、リンクは付くのですが、全体にリンクが付いてクリックできなかったり、
    <li>もリンク内に入ってきたりと挙動が不安定でした。

    なにか解決策がありましたらお知らせいただけますでしょうか?
    度々お手数をおかけいたしますが、よろしくお願いいたします。

    Hinaloe

    (@hnle)

    (空postが気になりますが…………)

    リンクタグは一切入れていないのこままでリンクになるのは逆におかしいです。

    例えばタイトルをリンクにするには

    get_the_title()

    '<a href="'.get_permalink().'">' ………… '</a>'

    で囲い

    '<a href="'.get_permalink().'">' . get_the_title() . '</a>'

    のようにします。

    uiwer

    (@uiwer)

    ご連絡ありがとうございます。
    検証させていただきたいと思います。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「カテゴリごとの記事の一覧(リンク付)をトップページに羅列したい」には新たに返信することはできません。