【WordPress】最近のコメントをカスタマイズして表示する方法

公開日:
更新日:
カテゴリー: WordPress

WordPressサイトに「最近のコメント」を表示させる場合、ウィジェットを使う方法とテンプレートタグ「WP_Widget_Recent_Comments」を使う方法がありますが、そのいずれもカスタマイズ性にかけます。

ここではget_comments関数を使用して「最近のコメント」をカスタマイズして表示する方法を紹介します。

最近のコメントを自由にカスタマイズ

WordPressでサイトを運営している場合、ユーザーの利便性向上やアクセスアップのために、サイドバー等に「最近のコメント」を表示させている場合も多いかと思います。

その際、冒頭でも触れました通り、ウィジェットやテンプレートタグを利用するのですが、これらの方法では自由自在なカスタマイズはできません。

ウィジェットで「最近のコメント」を設置した場合、出力される項目のli要素は以下となります。

<li class="recentcomments">

このとき、

<li class="hoge">

のようにしたいと思っても、(私の知る限りでは)簡易にカスタマイズできません。

get_comments関数を利用する

こういう場合は、ウィジェットやテンプレートタグに頼らず、get_comments関数を利用すれば自由自在にカスタマイズを行って最近のコメントを出力できます。

※ウィジェットAPIを利用する方法もありますが、この方法の方が簡単です。

get_comments関数について

get_comments関数は、コメント情報を配列で取得する関数で、各種パラメータを指定することで、そのパラメータに合致した情報を取得できます。

基本的によく使う形は以下です。

$comments_info = get_comments('status=approve&number=5');

もしくは

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

これは、ステータス(status)が承認(approve)されている最新のコメント5件の情報を$comments_info変数に配列で格納しています。

実際に取得できる情報は以下です(上は概要、下は実際の値です)。

Array
(
    [0] => stdClass Object
        (
            [comment_ID] => コメントID
            [comment_post_ID] => コメントが所属する記事ID
            [comment_author] => コメント投稿者の名前
            [comment_author_email] => コメント投稿者のメールアドレス
            [comment_author_url] => コメント投稿者のウェブサイト
            [comment_author_IP] => コメント投稿者のIP
            [comment_date] => コメント投稿日時
            [comment_date_gmt] => コメント投稿日時
            [comment_content] => コメント内容
            [comment_karma] => コメントカルマ(使用されていないフィールドで常に「0」)
            [comment_approved] => コメントの承認状況(承認されている場合は「1」)
            [comment_agent] => コメント投稿者のユーザーエージェント
            [comment_type] => コメントタイプ
            [comment_parent] => 親コメントがあるかどうか(なければ「0」)
            [user_id] => ユーザーID(ユーザー登録していない人のコメントは常に「0」)
        )

    [1] => stdClass Object
        (
            [comment_ID] => 4508
            [comment_post_ID] => 3416
            [comment_author] => 匿名
            [comment_author_email] =>
            [comment_author_url] =>
            [comment_author_IP] => 106.135.0.5
            [comment_date] => 2013-12-16 03:46:20
            [comment_date_gmt] => 2013-12-15 18:46:20
            [comment_content] => テストコメント
            [comment_karma] => 0
            [comment_approved] => 1
            [comment_agent] => Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53
            [comment_type] =>
            [comment_parent] => 0
            [user_id] => 0
        )

以下略

)

サンプルプログラム

では、get_comments関数を利用して、最近のコメントを出力するサンプルプログラムを掲載します。

以下は、最新のコメント5件の記事URL、コメント投稿者、コメント投稿日時、コメント内容を表示するプログラムです。

<?php
//コメント情報取得(5件)
$comments_info = get_comments('status=approve&number=5');
//取得したコメント情報をループ
foreach($comments_info as $value):
	//取得したコメント情報からそのコメントがされている記事IDを取り出し、記事情報を取得
	$post = get_post($value->comment_post_ID);
/ * ここから出力 * /
?>
<!--コメントされた記事へのリンク-->
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<!--コメント投稿者-->
<?php comment_author_link(); ?>
<!--コメント投稿日時(○月/○日)-->
<?php comment_date('m/d'); ?>
<!--コメント内容-->
<?php comment_text(); ?>
<?php
/ * ココまで出力 * /
//ループ終了
endforeach;
?>

あとはこのプログラムをテーマファイルの任意の場所に設置して、ちょこちょこ自分流にアレンジすれば、自分の好きな形で「最近のコメント」を表示できます。

 

あわせて読んでほしい!

 

コメント

まだコメントはありません。

コメントフォーム
お名前
コメント