文化を享受し、ITを活用して「よりよい暮らし」を考えたい湘南発の個人メディア

WordPressでトラックバックURLを表示する

カテゴリー : WordPress — 2008/10/25

WordPressを使うようになり、今のところ基本的にはコメント欄を閉じて運用しようと思っています。しかし、外部からのフィードバックを受ける手段がメールフォームだけなのもなんだかなあ、と思うので、トラックバックくらいはちゃんと送受信できるようにしたいと思っていました。テスト用に持っているいくつかのレンタルブログのアカウントに、このブログからトラックバックを送信したところ、ちゃんと送れていたので、送信については問題なし。しかし、受信ができないようで、どうしてかなあと思っていました。

しかも、私の使っているさくらインターネットについて、WordPressのフォーラムではさくらインターネットではトラックバックを受信できないと書いている人もいて不安になりました(このトピックでも、最終的にはレンタルサーバは関係ないという結論になっていましたが)。

結論からいうと、私の場合ですが、テストのため外部のブログサービスから送信したトラックバックが全てスパム扱いされてAkismetのスパムフィルタに引っかかっていたので、気づかなかったというだけのことでした。スパムフィルタに引っかかると通知メールも来ないし、もちろん記事ページにも掲載されないので、受信できていないと勘違いしていたわけです。スパムフィルタを確認していなかったために2週間以上悩んでいました。

なお、WordPressでは「トラックバックなんて古いよ」という態度をとっています。なんといっても、記事投稿画面にある、トラックバックを送信時に入力するテキストボックスの解説に、以下のように書いてあるのですから。

トラックバックはリンクしたことをリンク先に知らせる方法として、レガシーなブログシステムに対して用いられます。ほかの WordPress ブログにリンクする場合は、リンク先のブログがピンバックによる通知を自動的に受けるので、さらにトラックバックをする必要はありません。

つまり、WordPress同士であれば、リンクするだけでトラックバック相当の機能(ピンバック)が働くので、いちいちTrackBack URLなど確認して送る必要はないよ、ということです。ちなみに、最初からこのWordPressブログ同士のピンバックはスパム扱いされずにちゃんとメール通知&表示されていました。

しかし、WordPressはレガシーと言おうが、現在日本で使われている大部分のブログは、トラックバック機能を普通に使っているので、トラックバック受信用URLを示すほうが親切です。WordPressならば記事URLにtrackback/を加えるだけのことなのですが、ほかのブログ利用者にはそんなこと分かりませんよね。

トラックバック受信用URLを表示する方法については、WordPressでTrackback URLのボックスを表示 | Tech de Goを参考にしました。

このブログでは、comments.php に以下のようなコードを入れています。上記のTech de Goのものをもとに、注釈やCSS用のクラス指定などを一部変更しました。

<div class="trackback">
<?php if ('open' == $post->ping_status) : ?>
   <h3 id="trackback-url"><?php _e('Trackback URL', 'hoge') ?></h3>
   <p class="trackback-comment">管理者の承認後に表示します。無関係な内容や、リンクだけで意見や感想のないものは承認しません。</p>
   <input onfocus="this.select()" readonly="readonly" value="<?php trackback_url(); ?>"
       class="tb_url" id="tb_url" name="tb_url" accesskey="x"/>
<?php endif; ?>
</div>

さらに、スタイルシートには以下のように指定しています。Tech de GoではURLが書いてあるボックスの横幅が”width: 50%”となっていてやや狭いと感じたので80%にしたほか、全体のmarginなどの指定をしました。

input#tb_url {
   font-family: "courier new", courier, monospace;
   background-color: #CCC;
   font-size: 1em;
   padding: 0.2em;
   width: 80%;
}

div.trackback {
	margin: 1em;
}

p.trackback-comment {
   font-size: 0.8em;
}

関連しているかもしれない記事