wordpressで最近のコメントを表示させる方法

ウィジットを使えば、最近のコメントを表示することができますが、さらに
カスタマイズして、表示させたい人への方法

phpのタグ

<?php
$comments = get_comments(array('status' => 'approve' ,'number' => 5));
foreach($comments as $comment):
$post = get_post($comment->comment_post_ID);
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>へのコメント
(<?php comment_author_link(); ?>より[<?php comment_date('m/d'); ?>])
<?php comment_text(); ?></li>
<?php endforeach; ?>

解説

get_comments(array('status' => 'approve' ,'number' => 5));

まずは、get_comments関数でデータを取り出しています。

statusはどんなコメントのデータか指定できます。
ここでは、approve = 承認済みのコメントデータ
ほかには、hold = 承認まちのコメントデータ、spam = スパムコメントデータなど指定できます。
number はコメントの表示させる数になります。
ほかにも指定ができて
orderで並び順を指定できます。初期設定では、DESC、日付が新しい順に並びます。
逆にするなら、’order’ => ‘ASC’を入れてあげれば大丈夫

foreach($comments as $comment):
$post = get_post($comment->comment_post_ID);

foreachで一つ一つのデータを表示できるようループを行っています。
get_post($comment->comment_post_ID)がコメント先のデータを読み込み
$postに代入することでコメントのthe_title();を表示する事ができます。
これがないと、そのページでのthe_title();が表示されます。

(<?php comment_author_link(); ?>より[<?php comment_date('m/d'); ?>])
<?php comment_text(); ?></li>

comment_author_link();はコメントしたユーザー名
comment_date()はコメントした日
comment_text()コメント内容が表示されます。

4 COMMENTS

happyfun120

はじめまして。(当方PHPもWordpressもどちらもよく分かっておりません。)
WordPressで最近のコメントを表示させるこの記事、とても参考になりました。ありがとうございます。
もうひとつ、教えていただきたいのですが、comment_text()によって表示させる文字数を制限したい場合は、(例えば最初の10文字だけを表示させる)という場合は、どのようにすればよいのでしょうか?
ネットでさがすと mb_substr() というのがあるようですが、組み合わせて使う方法などが、少し試してみましたが、良く分かりませんでした。
こんな質問をさせてもらってよいのかどうかさえ分かりませんが。
もしよろしければ、教えていただけると大変助かります。

返信する
shu

コメント遅くなりましたm(_ _)m
comment_text()の部分を下記に書き換えられると、最初の10文字が表示されるようになります。

<?php echo mb_substr(get_comment_excerpt(), 0, 10); ?>

10の部分を書き換えられれば、文字数をかえれますよ~。試してみてください。

返信する
happyfun120

お返事いただいていたのですね。何と今頃気が付きました。
試してみると確かにこの方法で抜粋できますね。
ありがとございました。お礼が今頃になってしまい、
大変申し訳ありませんでした。お許し下さい。

返信する

happyfun120 へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です