WordPressではピンバックとトラックバックをサポートしている。ピンバックはWordPress同士でブログを運営している場合に、他のブログのURLを張った際に、相手がピンバックを拒否している場合やピンバックを送信しないように設定している場合を除いてピンバックを送信するようになっている ((テーマによっては独自に対策を行っている場合もあるが、デフォルトでは自分自身のブログにもピンバックを行ってしまう問題がある。これについてはWordPressのテーマによってはデフォルトでセルフピンバック抑止をつけているのもあるを参照されたい)) 。一方、WordPress以外のブログに対してはトラックバックを送らなければならず、その際にはトラックバック用のURLが必要になる。テーマにもよるが、WordPressではトラックバックURLを表示しないため、トラックバック送信には若干不便である。ここではトラックバック用URLを表示してみたい。
トラックバックURL表示方法
『友達100人できるかな?WordPressでトラックバック用のURLを表示する方法』(OXY NOTES)でも述べられている通り、通常は以下のPHPコードを追加するだけである。トラックバックURLを表示した後のスパム対策など諸々の設定についても詳しく述べられているので、ぜひ参考にしてもらいたい。
[code lang=”php”]<?php trackback_url(); ?>[/code]
ただ、OXY NOTES氏の方法では、コメントを閉じている場合でも表示されてしまう。その対策として以下のようにphpのcomments_open()を使うことでコメント欄を開いているかどうかを判定した上で表示するかどうかを振り分けることができるようになる。
[code lang=”php”]<?php
if( comments_open() ) :
?>
<h3>トラックバックURL</h3>
<input class=”trackback_field” type=”text” readonly=”readonly” onfocus=”this.select();” value=”<?php trackback_url(); ?>”>
<?php
endif;
?>[/code]
こうすることで、コメント欄を開いている場合に限りトラックバックURLを表示できるようになる。
なお、トラックバックURLは以下のように表示される。
解説
comments_open()という関数は、コメントを受け付けているかどうかを判定している関数で、投稿IDを省略することで現在の投稿がコメントを受け付けているかどうかを判定することができる。また、
[code lang=”php”]<?php if (…) : ?>[/code]
と
[code lang=”php”]<?php endif; ?>[/code]
を囲むことによって、条件 ((ここではコメントを受け付けているかどうか)) を満たした場合に限って指定したHTML ((ここではトラックバック用URL)) 表示することができるというわけである。
最後に
WordPressではトラックバックそのものは対応しているが、トラックバックURLを表示しない設定となっており、PHPを修正しないと表示してくれない不親切な仕様となっている ((テーマあるいはプラグインによっては表示してくれるようになるものもあるかもしれないが)) 。
トラックバックURLを表示するように変更することによって、WordPressを使っていないブログからも容易にトラックバックを送れるようにすることでできることを検討するとよいだろう。
ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。主にスマートフォン向けアプリやウェブアプリの開発を携わっています。ご用の方はコメントかコンタクトフォームにて。