Change Style


WP plugin: 最近の投稿リストを表示 - Customizable Post Listings

WordPressのプラグイン:Customizable Post Listings 1.1 を入れてみた。サイドバーの「Recent Posts」, 「Recently Commented [Post]」がそれ。

Customizable Post Listings
機能概要最近の投稿、コメントのあった投稿、更新された投稿、ランダムなリスト?、を表示。
バージョン1.1 (2004.9.27)
作者(web)coffee2code さま
配布元coffe2code » Scott Reilly’s WordPress Plugins Plugins » Customizable Post Listings
ドキュメントcoffe2code » Plugin: Customizable Post Listings
「ページ」対応△: 本来は「ページ」は対象外。カスタマイズにより対象とすることが可能。
バグあり
適用したWP
  • WordPress ME 2.0.2 [UTF-8]
  • WordPress ME 2.0.3 [UTF-8]
  • WordPress ME 2.0.4 [UTF-8]

導入手順

  1. 配布元よりダウンロードして解凍。
  2. customizable-post-listings.phpwp-content/plugins/ ディレクトリにアップロード。
  3. プラグイン管理画面で「Customizable Post Listings」を有効化。
  4. サイドバーへの表示は、wp-content/themes/テーマ/sidebar.php を編集してアップ。(パーミッションを変えておけば管理画面で修正できるらしい。) 詳細は下記参照。

使い方

公式説明

cf. coffe2code » Plugin: Customizable Post Listings

表示できるリスト
  • Functions にある4種類のリスト(関数)が使える。
  • 後述の引数と表示フォーマットを組み合わせることによって、様々なリストが作れる。
表示オプション指定方法
  • 各関数の引数(パラメータ)によって指定。
  • 指定順序・初期値・値を囲むクォートの種類(シングル or ダブルクォート or なし)は Functions にあるとおり。
  • 複数指定時は、各関数の引数の順番に並べてカンマ(,)で繋ぐ。
  • $date_format など後ろのほうの引数を指定するときは、それより前にある項目も書く。
  • $format はダブルクォート(")で囲む。
  • 引数の簡単な説明
    • $num_posts : 表示件数; デフォルトは 5 件。''(シングルクォート2つ)で全件出力できた。
    • $format : 1件ごとの表示フォーマット。表示できる項目 percent substitution tags と HTMLタグとを組み合わせて自由に定義できる。''(シングルクォート2つ)を書くと、何も表示せずに該当された記事の値を取得するようだが、具体的にどういう値が返されるのかは未確認。
    • $categories : 対象とするカテゴリIDを指定可。複数のときは1スペース(半角)で区切ると or 条件。空のままなら全カテゴリが対象。
    • $orderby : リストを何順に表示するか。c2c_get_recent_posts でのみ指定可。デフォルトは 'date'wp_posts テーブルのフィールド名 'post_○○' の○○の部分を指定できそう。'author' とか。
    • $order : 'ASC'(昇順) or 'DESC'(降順); デフォルトは 'DESC'
    • $offset : 表示を飛ばす件数。; デフォルトは 0。[メインコンテンツ部に5件表示し、その次の投稿以降をこのリストに表示したいときとか?]
    • $date_format : 日付フォーマット(phpと同じ)。
    • $authors : 対象とする author ID を指定可。複数のときは1スペース(半角)で区切ると or 条件。空のままなら全 author が対象。
    • $include_passworded_posts : パスワードのかかった投稿をリストに含めるか否か。'true' or 'false'。デフォルトは false(含めない)。
表示フォーマット(引数 $format)に使える項目

Notes に載っている percent substitution tags

  • %comments_count% // 記事へのコメント数
  • %comments_fancy% // 0件のとき「No comments」、1件のとき「1 Comment」、それ以上(n件)のとき「n Comments」と出力。ソース get_recent_tagmap() 参照。
  • %comments_url% // 記事のコメント部先頭へのURL
  • %comments_URL% // 同上リンク付き記事タイトル
  • %last_comment_date% // 記事への最新コメント日付
  • %last_comment_id% // 記事への最新コメントの ID
  • %last_comment_URLurl% // 記事への最新コメントの URL
  • %last_commenter% // 記事への最新コメント投稿者名
  • %last_commenter_URL% // リンク付き記事への最新コメント投稿者名(コメント投稿者のURLが入力されているとき
  • %post_author% // 記事の著者名
  • %post_author_count% // 著者の投稿件数
  • %post_author_posts% // 著者記事アーカイブへのリンク付き著者名
  • %post_author_url% // URL($authordata->user_url)リンク付き著者名
  • %post_content% // 記事コンテンツ全文
  • %post_date% // 記事の投稿日
  • %post_excerpt% // 記事抜粋
  • %post_excerpt_short% // 独自の短い記事抜粋(サイドバー向き) 追記 コメント欄で補足説明
  • %post_id% // 記事 ID
  • %post_modified% // 記事の最終更新日
  • %post_title% // 記事タイトル
  • %post_url% // 記事のパーマリンク URL
  • %post_URL% // パーマリンク付き記事タイトル
表示デザイン

wp-content/themes/テーマ/style.css にて調整。

使用例

  • cf. coffe2code » Plugin: Customizable Post Listings > Tips & Examples
  • 例1: サイドバーに最近の投稿5件を表示。表示フォーマットは「日付: パーマリンク付き投稿タイトル」/日付フォーマットは「Y.n.j」/パスワード付き投稿は含めない
    <?php if (function_exists('c2c_get_recent_posts')) { ?>
      <li><h2>Recent Posts</h2>
        <ul>
        <?php c2c_get_recent_posts(5,"<li>%post_date%: %post_URL%</li>",'','date','DESC',0,'Y.n.j'); ?>
        </ul>
      </li>
    <?php } ?>
    

    上記例中の if 文は、プラグインを無効化したとき等の関数が存在しないとき用。

  • うちのサイトでの使用箇所は、使っているプラグイン 逆引き(機能別)リスト 参照。

Bugfix

  • %last_comment_URL%%last_comment_url% が正解。
    customizable-post-listings.php 285行目を修正:
    "%last_comment_url%",    // URL to most recent comment for post
    
    次回更新時にバグフィックス予定とのこと。
    cf. Responses#105 Valerie replied on February 1st, 2005 at 6:48 PM EST, #109. Scott replied on February 10th, 2005 at 10:33 AM EST
  • %comments_url% の生成コードも間違っているような・・・。
    テーマによって違うのかも。少なくとも、WP 2.0.2 ME のデフォルトテーマには合っていない。
    187行目:
    (誤)
    case '%comments_url%':
        $new = get_permalink() . "#postcomment";
        break;
    
    (正)
    case '%comments_url%':
        $new = get_permalink() . "#comments";
        break;
    

カスタマイズ

  • 「ページ」を表示対象にした。customizable-post-listings.php の61行目に 'static' を追加。
    実際に格納されているデータを見て 'publish' は公開記事、'static' は「ページ」と解釈。参照: Codex
  • カテゴリ名を表示対象にする方法: #204 bartolli さんのコメント を参考に。(私はまだ行っていない。)
  • 2006.7.5: 記事/ページのカスタムフィールドに記事/ページの更新概要を記入し、前項の要領で、この値を percent substitution tags で扱えるようにした。
    トップページやサイドバーの更新記事リストのツールチップに表示してみた。

YOU、これも読んじゃないなYO!

  • No Related Posts

17 Responses to “WP plugin: 最近の投稿リストを表示 - Customizable Post Listings”

  1. たき :

    参考にさせていただきました。どうもありがとうございました!

  2. ぼの :

    たきさん、はじめましてー。参考にしてくださったなんて感激です。初めてだあ。。。(*’-'*) こちらこそありがとうございます!

  3. Neko :

    「ページ」を表示対象にした。customizable-post-listings.php の61行目に ’static’ を追加。

    これってどこを指しているのでしょうか。

    上下の数行を掲載していただけませんか?

    宜しく御願い致します。

  4. ぼの :

    Nekoさん、はじめましてー。
    61行目にそれらしい箇所が見当たらなかったということでしょうか。バージョンは 1.1 をお使いですか?

  5. ゆゆ :

    はじめまして、こんばんは。
    数日前からWPを使っていて、記事を参考にさせていただいています。
    ところで、上で書き込みをされているNekoさんと同じ内容なのですが、
    61行目のどのへんに’static’を追加すればいいのでしょうか。
    Customizable Post Listingsのバージョンは1.1を使っています。
    お手数をおかけしますが、よろしくお願いします。

  6. WEBデザイン・翻訳の peacock union » WordPress:Customizable Post Listings :

    […] 参考:WP plugin: 最近の投稿リストを表示 - Customizable Post Listings by ぼのさん […]

  7. ぼの :

    ゆゆさん、peacock union さん、はじめまして。
    しばらくネットから離れていました。お返事が遅くなってすみませんー。(>_< )

    >ゆゆさん
    ううう、遅すぎですね。ゴメンナサイ。
    既にご自分で解決されているといいのですけれども。。。

    お二人から問い合わせがあったので、元ファイルを確認してみましたが、テキストエディタによって行番号の振り方が違うのかもしれません。
    改行のみカウント(折り返しはノーカウント)で 61行目、$tableposts.post_status = 'publish' のある行です。

    : カスタマイズは、初心者の私が満足する範囲内で行っているので、検証が十分とは言えません。他にもトライされる方がいらっしゃいましたら、この修正でよいのか、ぜひぜひご自身でご確認くださいー。

    >peacock union さん
    参考になりましたら私もうれしいです。

    1つだけ指摘を。。。
    percent substitution tags のブロックですが、私の記事からコピペするだけですと del タグが効きません。%last_comment_URLurl% となってしまっています。(配布元では URL です。)

  8. ゆゆ :

    ぼのさんこんばんは。お返事ありがとうございます。
    あれからWPの使い方もだんだんわかってきたんですが、
    恥ずかしながら、この件はわからないまま放置しっぱなしでした^^;
    何事も挑戦だと思いますので、早速試してみたいと思います。

  9. ぼの :

    ああっ、ゆゆさぁーん!ほんとに遅くなってごめんなさいでした。上手くいきますように。 :-)
    (私のコードを載せていいものか、今ちょうど悩んでいて。。。すぱっと載せてなくてすみません~~。。(;_;))

  10. ぱそずき :D)‐く :

    [WordPress][Plugins] Customiza…

    Customizable Post Listings プラグインはアーカイブをリストさせたり、好きなところにカテゴリー別にタイトルを表示させたりできて便利です。このプラ (more…)

  11. ぼの :

    ぱそずき :D)‐く さん、はじめまして。トラックバックありがとうございます。
    ちょっと長くなりますが、抜粋処理について補足を書いておきますね。

    %post_excerpt_short%(独自の抜粋)について:

    customizable-post-listings.php ないの244行目を編集します。
    if (strlen($new)> $excerpt_length) $new = substr($new,0,$excerpt_length) . "...";
    の substr を mb_substr に変更するだけです。

    strlenmb_strlen もかな?)

    デフォルトではこの行を通らないかと思います。
    ここは 238行目付近から処理が繋がっていて、途中で2つに分岐します。

    case ‘%post_excerpt_short%’:
        $new = ltrim(strip_tags(apply_filters('the_excerpt', get_the_excerpt())));
        if ($excerpt_words) {
            処理A $excerpt_words でカット(スペース区切りで6語(デフォルト))
        } elseif ($excerpt_length) {
            処理B $excerpt_length でカット(ぱそずきさんが修正された行)
        }

    デフォルトでは $excerpt_words=6 なので、処理A に行きます。

    147行目付近(↓)にて、処理の切り替え(と文字数設定)が可能です。

    //-- Some things you might want to configure -----
    $excerpt_words = 6;	// Number of words to use for %post_excerpt_short%
    $excerpt_length = 50; 	// Number of characters to use for %post_excerpt_short%, only used if $excerpt_words is 0

    抜粋される文字数がでたらめになりうまくいきません。
    デフォルトでは日本語の文字数を認識してくれず表示が乱れます。
    というのは、抜粋が長すぎたとかでしょうか?
    処理Aはスペース区切りで単語数を判断しているので、これがらみかもです。

    そうではなくて、文字数が短すぎたり末尾が「?」とかの変な文字になったのでしたら、strlen, substr っぽいですが、$excerpt_words も修正されたでしょうか?

    WP本体の the_excerpt() の文字数問題について:

    jamさんの「アジア圏テキスト対応パッチ」がオススメです。 :-)
    参照: WP: 抜粋表示時の全文出力を修正

  12. goxu@ぱそずき :D)‐く :

    あ。完全に $excerpt_words = 6; について言及するのを忘れていました。:) ご指摘ありがとうございます。こちらの記事に修正を加えました。

  13. ぼの :

    goxuさん、そうでしたか。 :-)

    あと、先日のトラックバック、こちらのコメント欄の下まで読まないと意味の分からないものをお送りしちゃって、ごめんなさいー。(>_<) 抜粋オプションにメッセージを書き込んで送信するつもりだったのですけれども、失敗してしまって。。。
    できれば削除してやってくださいー。よろしくお願いします。

  14. Consultant's Story - Life Hacks - by Zero Cool :

    更新記事リスト完成!…

    以前から課題だった「ブログの投稿記事の改訂、追記に関して」を解決しました!
    「power source*」を主催されている “ぼの” さんに質問 (more…)

  15. peacock union【Web Designing Laboratory】 :

    WordPress:Customizable Post Li…

    以前のエントリーで紹介したCustomizable Post Listings を、WordPress 2.1.3で使ってみたところ、最新ポスト一覧にpagesまで拾っ (more…)

  16. 使用している WordPress Plugin : 独断と偏見の何でもレビュー :

    […] Post Listings(日本語情報) […]

  17. Ken :

    過去の投稿一覧(すべての記事)を表示する記述方法をしりたいです。

コメントをどうぞ