Hirobee’s Trail [Memorandum]

Commented entry list Plugin

by Hirobee on 16:02 Saturday, April 30th, 2005, under Plugin, WordPress

Calrozさんからリクエストがあったので、Get Recently Commentedプラグインを、最近のコメントと最近のトラックバックに分けて表示できるようにしてみました。
MovableTypeを使っているサイトで使われていることが多いタイプの表示方法ですが、WordPressでは個別エントリのページでコメントとトラックバックが分けて表示されないので、どうだろうとおもっていたら、Standing Tall ≫ Blog Archive ≫ WP のヒント:コメントとトラックバックを分けるで、個別エントリページでコメントとトラックバックを分ける方法を見つけました。
アーカイブに入っているcomments.phpを使っているテーマのものと入れ替えてください。
プラグインのPermalinkはこのcomments.phpを前提に書いていますので、オリジナルのcomments.phpを使う場合は、
59行目の
$permalink = get_permalink($comment->ID)."#trackbacks";

$permalink = get_permalink($comment->ID)."#comments";
に修正してください。

アーカイブをダウンロード : commented-entry-list.zip

:,

19 Comments for this entry

  • Calroz

    Hirobeeさん、早速の対応ありがとうございます:razz:
    それにしてもこんなに早く出来てしまうなんて驚きです:shock:

    さて、アーカイブをDLして設置してみましたところ
    自分のサイトではエントリのリストの数の取得が上手く行ってないようです。
    とするとエントリの数ではなく
    コメントの数が取得されてしまいます。
    トラックバックの方も同じく。。。
    訂正したのはcommented-entry-list.phpの

    33行目、67行目
    $comment_date = mysql2date(‘m/d@H:i’, $comment_date);
    35行目、69行目
    $comment_date = mysql2date(‘m/d@H:i’, $comment_date);

    だけなのですが。。。
    Hrobeeさんのサイトでは上手く行っているようなのに。。。

  • Hirobee

    Calrozさん
    えぇっと、ちょっと状況がよくわかりません。
    >自分のサイトではエントリのリストの数の取得が上手く行ってないようです。
    >とするとエントリの数ではなく
    >コメントの数が取得されてしまいます。
    数というのは
    get_recently_commented(10)
    等の()内に入れた数ということでしょうか。
    あと、どのように表示されるのでしょう。Calrozさんのサイトを見られないので、よくわかりません。
    よければ、CalrozさんのサイトのURLを教えてください。

  • Calroz

    あ、すいません。途中で文章を編集してそのまま投稿したようです:oops:
    >とするとエントリの数ではなく
    >コメントの数が取得されてしまいます。

    Websiteを入力しましたけど見られるでしょうか?
    サーバーはxreaです。
    ちなみにテーマはnotebookの方です。宜しくお願いします。

  • Hirobee

    Calrozさん
    サイトを見せてもらいました。タグは、
    <?php get_recently_commented(5); ?>
    <?php get_recently_trackbacked(5); ?>
    と書かれたんですよね。

    動作としては正常です。
    このプラグインは、最近のコメント、最近のトラックバックが設定した数だけ並ぶようになっています(さんぷるとして、現在のこのサイトのサイドバーは5に設定してみました、以前は20でした)ので、1つのエントリに対して連続して多数のコメント、トラックバックがあった場合、並ぶのはそのエントリだけになってしまいます。
    Carlozさんは設定した数のエントリがリストに並んでほしいのだと思いますが、現状ではそういう動作はしません。
    タグにエントリの数とコメント・トラックバックの数を設定できるようにすれば良いのだと思いますが、現状の知識では難しいので、申し訳ないですが、今のところこの動作で正常ということにさせてください。

    アーカイブのReadMe.txtの説明を書き換えることにします。

  • Calroz

    Hirobeeさん、了解です:mrgreen:
    Hirobeeさんのサイドバーがたまたま私の希望してたような動作を表示していたのですね:oops:
    正常な動作という事で安心しました。
    長々とお付き合いくださりどうもありがとうございました。
    あ、それとcommented-entry-list.zipに同梱されているcomment.phpですが
    Trencaspammers 1.0rc Pluginを導入していると想定されたファイルとなっていました。
    一応、お知らせした方がいいかと。。。
    では、また何かありましたら宜しくお願いします。

  • Hirobee

    Calrozさん
    comments.php修正しました。
    このサイトで使っているものをそのまま入れてしまいました。
    知らせていただきありがとうございました。
    プラグインの方も何とかできないか考えてみます。

  • Calroz

    おぉっ!了解しました:grin:
    あまり無理をなさらないように。

  • 110

    Hirobeeさん
    初めまして、110と申します。Commented entry list Plugin使用させていただきました。
    トラックバックさせていただいたのですが、何故か:?:出来なかったのでコメントさせていただきました。
    素晴らしいプラグインをありがとうございました。

  • ちさ

    初めまして。最近ブログサーバーを設置したく、最初はMovable typeで設置をなんとか試みていたのですが、Macとはどうも相性が合わないのか、スムーズにインストールできなかったり、Mac OS 10.3の方はそれでもなんとか動作したのですが、Mac OS X serverだとモジュール自体のインストでつまづき、困り果てていたところ、ここへたどり着きました。さっそくwordpress ME 1.5.1をDLして設置も出来て、現在Hirobeeさんのサイト等参考にさせていただきながら拡張させていってるのですが、このCommented entry listを設置して、ローカルではエラーもなく無事設置出来たかに思えたのですが、サーバーにアップしたときに、
    『Warning: Variable passed to each() is not an array or object in(~/commented-entry-list.php on line 18)』
    『Warning: Variable passed to each() is not an array or object in(~/commented-entry-list.php on line 52)』という様にでました。
    あれ?と思って、コメントやTBを全体的に0件にしたところ、エラーが出ました。
    過去の記事等ずーっと読ませていただいて、一番最初の頃の方の記事に、似たような内容のことについて書かれてありましたが取り消し線ですよね?
    それは解決したということでしょうか?
    現在はコメント&TBがつくまではとりあえず、
     等をコメントアウトして動作させないように回避しているのですが。
    一応あちらこちら調べたり、最新版をDLしなおしたりもしてみたのですが直らないです。
    アドバイスよろしくお願いいたします!

  • Hirobee

    ちささん、
    サイトを見せていただきました。いまはエラーが出ていないのですが、最初に見たときに出ていたエラーでは、
    (サーバ)/wp/wp-content/themes/(テーマのパス)/commented-entry-list.php
    と出ていましたので、Pluginをアップロードするパスが違っているのではないでしょうか。
    テーマのパスではなく、
    (サーバ)/wp/wp-content/plugins/
    にアップロードしてみてください。

  • ちさ

    すばやいご対応ありがとうございました!
    早速/plugins/の方へアップしてみました。
    最初、テーマの方へ入れていて、でプラグインを呼び出していたので、
    違うエラーで出てしまい、を消したところ、コメントがついてるものは同じ様にエラーが出ないのですが、コメントが0件の場合は同じ様にパスが違うだけで
    「Warning: Variable passed to each() is not an array or object in (サーバーのパス名)/blog/wp-content/plugins/commented-entry-list.php on line 52」になります。
    エラーの内容は同じようで、訳してみると、(エキサイト翻訳ですが。。(^^;))
    「警告: 各()に通過された変数は、中の配列でなくて、またオブジェクトでもありません。」
    という意味のようです。
    18行と52行にエラーが出るので、両方とも、
    foreach ($comments as $comment) { ?
    の所からのようで、おそらくやはり、検索したオブジェクトが何も無いっていう場合にエラーが出るという現象じゃないかなと思うのですが、PHPもまだまだ勉強中でして分かっていません。
    過去の開発された方の履歴等めぐっていくと、[require]でsidebar.phpの1行目に書くとかありますが、Hirobeeさんのpluginはそんな必要ないですよね?
    プラグインフォルダに入れ、プラグイン開始でいちおう動いてるみたいなので。
    すみません。質問ばかりで。
    でも、このwordpressだけはサーバーマシンとの相性もいいのでなんとか形にしたいと思うので
    頑張りたいと思ってます。
    私もPHPの本等みながら調べてみます。
    またご報告伺わさせていただきます!

  • Hirobee

    ちささん、
    コメント、トラックバックが0件の時にはエラーが出てしまいます。
    テスト用においているWordPressで、インストール後の状態でコメントが1件、トラックバックが0件の時に、
    トラックバックの方に
    Warning: Invalid argument supplied for foreach() in /(WordPressのアップロードパス)/wp-content/plugins/commented-entry-list.php on line 50
    Warning: Invalid argument supplied for foreach() in /(WordPressのアップロードパス)/wp-content/plugins/commented-entry-list.php on line 53
    というエラーが出ています(ちささんの方で出ているエラーと少し違いますが)。
    このエラーは元のtkzy_get_recent_comments.phpを最初に使ったときも出ていましたので、仕方がないのだと思います。
    あと、requireを1行目に書くというのは、WordPressが1.2の頃のことで、1.5以降でPlugin形式で書かれているものはPluginsにアップロードして開始させておけば必要ありません。

  • ちさ

    Hirobeeさん
    エラー直りました!!
    Hirobeeさんのエラー文章はちょっと違いますが、翻訳(またまたエキサイト翻訳ですけど(笑))
    によると、
    「警告: 中でforeach()に供給された根拠のない議論」ということで、
    やはり、foreach()で処理する内容が何もないよってことだと思うのですが。
    それで、いろいろソースとずーっとにらめっこしていたら、
    このforeach文の始まる前にまず、
    何もなければ”データ無いよ”と出力させる(空白でもいいのですが(笑))if文を記述することによりエラーが解決されました。

    簡単な例ですが、
    18行、53行目のforeach ($comments as $coment)の前に
    if($comments == 0) {
    echo “書き込みはありません”;
    } else {( ←ここまでを追加、else以降に今までのスクリプト内容を入れてしまう。
      foreach ($comments as $coment) 
    (以下・・・省略・・・)
    47行あたりと86行あたりに
    }
     echo $output;
    }
    }←これを追加

    これで、0件でもエラー回避することができました!

  • iwan

    Hirobeeさん、はじめまして。
    素晴らしいプラグイン、ありがとうございます。
    一つ、お願いがございます。

    最近のコメントをサイドバーに表示させる際、IDを表示させず、日付けにもリンクを貼らないようにしたいのです。
    どの部分を書き換えればよいでしょうか??

    なにぶん、まだまだ初心者のため、わからないことだらけで、wordpressと格闘する毎日です。

    何卒よろしくお願いします。

  • Hirobee

    iwanさん、返事が遅くなりました。
    IDとういうのが何を指しているのかわかりません。WordPressがポストやコメントを管理しているIDということでしょうか。
    だとしたら、リンクとしてIDが使われることはあっても、表示されることはないはずです。
    日付のリンクは、コメントの方は42行目、トラックバックの方は82行目にある
    $comment_dateを囲んでいるタグ(<a href="$comment_id\" title="\"\>と</a>)を消してみてください。

  • iwan

    Hirobeeさま

    早速のレスありがとうございます。
    IDというのは、投稿者の名前のことです。わかりにくくてすみません。。
    投稿者を表示させたくないのですが、どのようにすればいいでしょうか?

    また、日付けからリンクを外す方法ですが、教えていただきありがとうございます。
    $comment_date
    の部分を消しましたら、日付けの表示自体が消えてしまいました。。
    どうすればよいでしょうか?

    ぜひご教授ください。

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

  • iwan

    Hirobeeさま

    たびたび失礼します。
    日付けのリンクを外す件ですが、勘違いしておりまして、じょこ解決できました。
    お手数をおかけしてすみません。

    投稿者の名前が出ないようにする方法だけ、よろしくお願いいたします。

  • Hirobee

    投稿者の名前ということでしたら、コメントの方は43行目、トラックバックの方は83行目にある、
    "<span class=\"comment_author\">".tkzy_get_comment_author_link($comment,20)."</span>
    を今度はタグも含めて全部消せば出なくなります。

  • iwan

    hirobee様

    早速のレスありがとうございました!!
    うまくいきました!!!

    本当に何度も申しわけないのですが、また気になることがでてきました。

    日付けを改行せず、続けて次のように( )入りで表示したいのです。(文章は例文です)

    ●今日はいい天気ですね?(08/10)

    コメントとトラックバックの表示文字数を限定し(例えば15文字とか)そのまま改行せずに日付け(( )入り)で続けて表示させるにはどうすればよいでしょうか?

    一度に伺えば良かったのですが、たびたびすみません。

    何卒よろしくお願いします。

4 Trackbacks / Pingbacks for this entry

  • Turn On One Day

    WP設定 コメントとTBを分ける?

    1.Separating Comment and Trackback
    以前から気になっていた、コメントとトラックバックを分けて表示するというプラグイン。他のブログウェアでは、通常はデフォルトで整形されているテキスト…

  • 110's blog

    コメントとトラックバックを分ける

    サイドバーの”最近のコメント”と”最近のトラックバック”はHirobee’s Trail [Memorandum]さんのCommented entry list Pluginを使用させていただきました。個別エントリーのコメントとトラックバッ…

  • とりあえずやってみるわ!!

    サイドバーにコメントとトラックバックを表示する…

    サイドバーにコメントとトラックバックを別々に表示するCommented entry list Pluginというプラグインを入れました。
    WordPressのコメントとトラックバックは、コメントとして一緒に表示される…..

  • 米が好き | 【WordPress】コメントとトラックバックを別表示にする方法

    [...] 次のプラグイン。 (B) Hirobee’s Trail [Memorandum] Commented entry list Plugin 『アーカイブをダウンロード』からzipをダウンロードします。 [...]

Leave a Reply


Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!