2007.07.14
WordPressのコメントとトラックバックについて
台風接近で時間ができたので、WordPressに手を加えたことをメモメモ。
まずはコメントとトラックバックに関すること。
———————————————————————–
1.サイドバーに最新の記事を表示するには、Odysseygate.comさんの
[WordPress]サイドバーにRecent Entryを表示する
のページの、その2の方法を参考にさせていただいた。
sidebar.php内の、表示させたい位置に
<?php wp_get_archives(’type=postbypost&limit=10&format=html’); ?>を入れる。
使っているテーマによって、サイドバーの他の項目と表示書式を揃える。
たとえば、自分の場合、以下のように。
<li id=”Recent Posts”><h2>Recent Posts</h2>
<?php wp_get_archives(’type=postbypost&limit=10&format=html’); ?>
</li>
———————————————————————–
2.サイドバーに最新のコメントとトラックバックを表示させるには、
やはり、同じくOdysseygate.comさんの
[WordPress]サイドバーに最近のコメントとトラックバックを表示する
の記事を参考にさせていただいた。
Hirobee’s Trail[Memorandum]さんの
Commented entry list 1.1 のページでプラグインをダウンロードし、
サーバーに送って有効化。
それから、自分の使ってるテーマのsidebar.php内の
コメントを表示させたいところに <?php get_recently_commented(); ?>
トラックバックを表示させたいところに <?php get_recently_trackbacked(); ?> と記述。
———————————————————————–
3.さて、この後、3カラムにしたくてテーマ探し。
外国のサイトも色々見たけれど、結局、日本の定番サイトに戻ってきて
小粋空間さんのWordPress テーマ(テンプレート)・3カラム版
を使わせていただくことにした。
”本テンプレートはデフォルト状態で
「最近のコメント」「最近のトラックバック」を表示するようにしています。”とのこと。
このテーマを使うなら、1.や2.を自分でやらなくても
2.でダウンロードした
「Commented entry list」プラグインが有効になってさえいればよかったみたい。
———————————————————————–
4.サイドバーに最新のコメント、最新のトラックバックは表示できるようになったけど
各記事の下には、コメントの件数として、
コメントとトラックバックを合わせた件数が表示されている。
これを分けて表示するために、やはり小粋空間さんの記事を参考にさせていただいた。
コメントとトラックバックを分けて表示する for WordPress(その1)
Trackping Separator のページからプラグインをダウンロードし、
サーバーに送って有効化。(trackpings.php )
インデックス、アーカイプ、検索結果の各テンプレート(index.php、archive.php、search.php)内で、comments_popup_link に関するコードを検索。
使っているテーマによって表示形式は違えど
<?php comments_popup_link(’No Comments’, ‘1 Comment’, ‘% Comments’); ?>
のような部分を見つけたら
<?php comments_only_popup_link(’Comments (0)’, ‘Comments (1)’, ‘Comments (%)’); ?> | <a href=”<?php the_permalink() ?>#trackback” title=”Trackback” class=”trackacklink”>Trackbacks (<?php echo trackpings(’count’); ?>)</a>
に置き換える。
シングルポスト(個別記事)のテンプレ(single.php)については
ビミョーな表現だったし、
確かに、個別記事では実際のコメントやトラックバックを確認できるので
件数表示しないことにした。
コメントのテンプレ(comments.php)については
小粋空間さんの3カラムテーマを使ってることだし、
参考ページで配布のcomments.phpとまるまる差し替え。
———————————————————————–
5.このcomment.phpはもう1度差し替えることになった。
小粋空間さんの「その1」をやったら、ついでに「その2」もやりたくなったから。
コメントが0件の時はコメント欄の表示をしない、
トラックバックが0件の時はトラックバック欄の表示をしない、というもの。
コメントとトラックバックを分けて表示する for WordPress(その2:タイトルを非表示にする方法) を参考に。
trackpng.php内の
if (!$cnt)
echo $no;
elseif ($cnt == 1)
echo $one;
else
echo str_replace(”%”, $cnt, $many);
}
の下に
function get_comments_only_number($no=”, $one=”, $many=”) {
global $wpdb, $tablecomments, $post;
$comments = $wpdb->get_results(”SELECT * FROM $wpdb->comments WHERE comment_post_ID = $post->ID AND comment_type = ” AND comment_approved = ‘1′”);
$cnt = count($comments);
if (!$cnt)
return $no;
elseif ($cnt == 1)
return $one;
else
return str_replace(”%”, $cnt, $many);
}
を追加。
Comments.phpをもう1回まるまる差し替え。
インデックス、アーカイブ、検索結果のテンプレで
コメントが0件の時、非表示にしたい部分、
トラックバックが0件の時、非表示にしたい部分をそれぞれ以下のようなコードで囲む。
<?php if (get_comments_only_number(’0′, ‘1′, ‘%’) != ‘0′) { ?>
コメント0件時にここを非表示
<? } ?>
<?php if (trackpings(’count’) != ‘(0)’) { ?>
トラックバック0件時にここは非表示
<? } ?>
———————————————————————–
6.さて、木のまちさんが気づかれたように
最近の記事しかトラックバックURLが表示されていない・
古い記事にトラックバックできない、というのは
MTからインポートした各記事の
「ディスカッション設定」の「ピン通知を許可」のところに
チェックが入っていないせいだとわかった。
全体の設定としては「各種設定」→「ディスカッション設定」のところでできるんだけど
個別記事への設定の方が優先されるらしい。
1個ずつ記事を開いてコツコツ、チェックを入れて直していく方法しか思いつかない…
とりあえず5・6月分だけやったけど。
理由と解決法がわかるまでは気になってたけど、
あまり必要ないかもしれないんで、あとはヒマな時に気が向いたらやることにする。
Trackback URL
Comment feed
Comment