WordPress プラグインを使わずにサイドバーにコメントの内容を表示する

※ワードプレステーマ:Sparkling 1.6.0

このブログ、たまーにコメントを頂けるようになってきたのですが、サイドバーに表示されるコメントウィジェット(最新のコメント)は、デフォルトだとコメントがあったことしか表示されないので、コメント内容も表示することにしました。

参考:WordPress「最近のコメント」ウィジェットをプラグイン無しでリッチ表示

テキストウィジェットでショートコードを扱えるように

functions.php に下記を追加。

function Include_my_php($params = array()) {
    extract(shortcode_atts(array(
        'file' => 'default'
    ), $params));
    ob_start();
    include(get_theme_root() . '/' . get_template() . "/$file.php");
    return ob_get_clean();
}
 
add_shortcode('myphp', 'Include_my_php');

特に何も考えないで追加しましたが、問題なさそうです。

こうすることで、テキストウィジェットでもショートコードが効くようになりました。

ショードコードで呼び出す PHP ファイルを作成してアップロード

sidebar-customcomment.php というファイル名にしました。

PHP の中身は下記。

<?php
/**
 * http://afirika.net/recent-comments-without-plugin
 *
 */

<div class="widget_recent_comments">
<ul id="recentcomments">
<?php
$args = array(
// 'author__not_in' => '1', // 管理者は除外
'number' => '8', // 取得するコメント数
'status' => 'approve', // 承認済みコメントのみ取得
'type' => 'comment' // 取得タイプを指定。トラックバックとピンバックは除外
);
// The Query
$comments_query = new WP_Comment_Query;
$comments = $comments_query->query( $args );
// Comment Loop
if ( $comments ) {
foreach ( $comments as $comment ) {
$url = get_permalink($comment->comment_post_ID);
echo '<li class="recentcomments">';
echo '<a href="'.get_permalink($comment->comment_post_ID).'#comment-'.$comment->comment_ID.'">'.$comment->post_title.'</a> に ';
echo '<span class="comment-author-link">';
comment_author($comment->comment_ID);
echo '</span> より『';
$my_pre_comment_content = strip_tags($comment->comment_content);
 if(mb_strlen($my_pre_comment_content,"UTF-8")>40) {
$my_comment_content = mb_substr($my_pre_comment_content,0,40) ; echo $my_comment_content. '...' ;
} else {echo $comment->comment_content;};
echo '』&nbsp;(';
echo comment_date( 'Y/m/d', $comment->comment_ID);
echo ')</li>';
}
} else {
echo 'コメントなし';
}
?>
</ul>
</div>

日付の部分(comment_date)ですが、書式を変えたい時は下記を見ると良いかと。
–>日付と時刻の書式 – WordPress Codex 日本語版

WordPress の書式ではなく PHP の関数(引数)みたいですね。

HTML 部分は新たに CSS を当てるのが面倒なので、テーマのデフォルト CSS が効くようにしました。

ウィジェットにショートコードを記載

myphp file='sidebar-customcomment'

という感じで、先ほど作成・アップロードした PHP ファイル名を記載すれば表示されるようになりました。( [ ] で囲って記述ください)

コメントを残す

  • コメント欄には個人情報を入力しないようにしてください。

  • 入力いただいたメールアドレスは公開されませんがサーバーに保存されます。
  • 入力いただいた情報の他に、IPアドレスを取得させていただきます。取得した IPアドレス はスパム・荒らしコメント対処ために利用され、公開することはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください