WordPress ME サイドバーに最近のコメントを表示する
May 9th, 2007 | by kent |
以前は Recent Comments プラグインを使用していたのですが、
ME 2.1.3 にアップデートしたついでに別のプラグインに乗り換えました。
Hirobee’s Trail [Memorandum] さんで公開されている
Get Recently Commented です。
ファイルを落としてきたら get-recently-commented.php を
サーバ/wp-content/plugins
に放り込んで管理画面からプラグインを有効にします。
続いて、自分が使っているテーマの
サーバ/wp-content/themes/自分のテーマ/sidebar.php
を編集。
最近のコメントを表示を表示させたい位置に
< ?php get_recently_commented(10); ?>
を入れます。10は表示させたいコメント数。
タグを付けたい場合は他の書き方を真似て、
<li id="Comment"><h2><?php _e('Comment'); ?></h2>
<?php get_recently_commented(10); ?>
</li>
とすればOK。
日付に投稿時間を付けたい場合は、
$comment_date = mysql2date('m/d', $comment_date);
を
$comment_date = mysql2date('m/d H:i', $comment_date);
に変更。
これで動かすと最近のコメントが以下のように表示されるようになります。
タイトル
05/08 23:45 kent
タイトルまたは日時をクリックすると当該のコメントにジャンプします。
投稿者名をクリックすると投稿者が記入したURLにジャンプします。
後者のジャンプはミスクリックしてしまうとちょっと面倒なので、ここのリンクは外す事に。
// $url = str_replace('http://url', '', $url);
// $url = preg_replace('|[^a-z0-9-_.?#=&;,/:~]|i', '', $url);
// if (empty($url)/* && empty($email)*/) {
$ret .= $author;
// }else{
// $ret .= '<a href="';
// if ($url) {
// $url = str_replace(';//', '://', $url);
// $url = (!strstr($url, '://')) ? 'http://'.$url : $url;
// $url = preg_replace('/&([^#])(?![a-z]{2,8};)/', '&$1', $url);
// $ret .= $url;
// } else {
// $ret .= 'mailto:'.antispambot($email);
// }
// $ret .= '" rel="external">' . $author . '</a>';
// }
ソースの最後の方でURLの取得をしているのでその部分を全てコメントアウト。
$ret .= $author;
だけが残るようにすればOKです。
これで投稿者名はリンクが外れて普通の文字になります。
日時&投稿者名の文字数が長すぎる場合は
.tkzy_get_comment_author_link($comment,20)
によって20文字以降は「・・・」で表示されるようになります。
数字を変更することによって制限する文字数も変えられます。
しかしタイトルが長すぎる場合の省略は出来ないので、
上と同じようなやり方で無理やり10文字の制限を付け加えます。
$output .= "<li>";
$output .= "<a href=\"$permalink\">$post_title</a>\n";
この2行の間に
$abbr_title = 14;
if ($abbr_title && mb_strlen($post_title) > $abbr_title) {
$post_title = mb_substr($post_title, 0, $abbr_title);
$post_title .= "...";
}
を差し込みます。
これでタイトルが長い場合でも、14文字以降は「・・・」で表示してくれます。
たまにPHPのコードとか読むと刺激になるよね。
うんうん。
1 Trackback(s)