ウィジットを使えば、最近のコメントを表示することができますが、さらに
カスタマイズして、表示させたい人への方法
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()コメント内容が表示されます。
はじめまして。(当方PHPもWordpressもどちらもよく分かっておりません。)
WordPressで最近のコメントを表示させるこの記事、とても参考になりました。ありがとうございます。
もうひとつ、教えていただきたいのですが、comment_text()によって表示させる文字数を制限したい場合は、(例えば最初の10文字だけを表示させる)という場合は、どのようにすればよいのでしょうか?
ネットでさがすと mb_substr() というのがあるようですが、組み合わせて使う方法などが、少し試してみましたが、良く分かりませんでした。
こんな質問をさせてもらってよいのかどうかさえ分かりませんが。
もしよろしければ、教えていただけると大変助かります。
コメント遅くなりましたm(_ _)m
comment_text()の部分を下記に書き換えられると、最初の10文字が表示されるようになります。
<?php echo mb_substr(get_comment_excerpt(), 0, 10); ?>
10の部分を書き換えられれば、文字数をかえれますよ~。試してみてください。
お返事いただいていたのですね。何と今頃気が付きました。
試してみると確かにこの方法で抜粋できますね。
ありがとございました。お礼が今頃になってしまい、
大変申し訳ありませんでした。お許し下さい。
[…] これは、1行では記述できないらしいのでshuさんの「GEEKZ」のページを参考にしてます。 […]