« 続々と | WordPressのfeedの文字数 »

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





XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>