[WordPress]トラックバック受信システムを実装し、URLを表示する方法

2018年現在のブログ事情では、「アメブロ」「楽天」から始まり「Seesaa」「livedoor」「Goo」までが廃止してしまい、もう大手では「FC2」くらいしか残っていない感覚のトラックバックシステム。

WordPressには元々トラックバックというシステムはありませんが、コードを追加することによって実装することができます。

ワードプレスでトラバを使う

trackback

当方のメインブログでは実装してずっと使って来たのですが、このたびテーマ「Simplicity」をやっと最新版に更新したら消えてしまいまして(いや、テーマのせいではなくて親テーマを編集するというダメなことをやっていたので、当たり前だけれども更新したら消えた(爆))

はるか以前にやったことを再びやらなければならなくなったので覚書き。

1. トラックバック受信の設定をする

まずダッシュボードの「設定」→「ディスカッション」の上の方。

「投稿のデフォルト設定」「新しい記事に対し他のブログからの通知 (ピンバック・トラックバック) を受け付ける」にチェックを入れて保存します。

wp-tb1

2. トラックバックURLをコメントフォーム近くに表示する

「受け付ける設定」をしただけではブログ上に表示されないので、まずはコメントフォーム近くにトラバURLを表示したい。

これがなければ訪問して下さった方がトラバを飛ばすことができないので……。

wp-tb4


当方はコメントフォームの上に設置したかったので、「comments.php」の最上部、 <?php comment_form(); ?> の上に挿入します。

言うまでもないことですが、もう二度と過ちは繰り返したくないので「comments.php」は子テーマに作ってそちらを編集。

Wordpressでファイルを編集しようとすると必ず出てくる「親テーマをいじってはダメ、子テーマをコピーして編集しなさい」というアドバイス。ところで「子テーマってなに?」から始まる今さら聞けない子テーマ編集法。

記載したコードは以下(コピペ化)

<h3>この記事のトラックバック用URL</h3>
<input class="trackback_field" type="text" readonly="readonly" onfocus="this.select();" value="<?php trackback_url(); ?>">

これだけです。

wp-tb5

3. 受信したトラックバックをコメントと分けて表示する

WordPressには「コメントとトラバを分ける」という概念がありません。

コメントもTBもPINも全て「ディスカッションだろっ!」という事らしいです。


wp-tb2

しかし、トラックバックとコメントがごちゃ混ぜの状態は見栄えもよくありません。ので、分け、それぞれにカウントをつけるという作業をします。


<?php comment_form(); ?> の下に挿入します。

<?php if (isset($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
	die ('Please do not load this page directly. Thanks!');
if ( post_password_required() ) { ?>
	<p class="nocomments">This post is password protected. Enter the password to view any comments.</p>
<?php return; } ?>
 
<?php if (have_comments()): ?>
	<div id="comping">
	<?php $comments_cnt=get_comment_only_number(); ?>
	<!-- コメント -->
	<?php if ($comments_cnt > 0) { ?>
		<h3><?php echo $comments_cnt; ?>件のコメント</h3>
		<ul class="commentlist">
			<?php wp_list_comments('type=comment&callback=mytheme_comment'); ?>
		</ul>
	<?php } ?>
	<!-- トラックバック -->
	<?php if (get_comments_number()-$comments_cnt > 0) { ?>
		<h3><?php echo get_comments_number()-$comments_cnt; ?>件のトラックバック</h3>
		<ul class="pinglist">
			<?php wp_list_comments('type=pings&callback=mytheme_pings'); ?>
		</ul>
	<?php } ?>
	</div>
<?php endif; ?>


これで綺麗に分けられます。


wp-tb3

ちなみに実装しているのはこのブログではなくて趣味のメインブログの方です。(2018年10月時点)FC2がトラバを廃止するまでは付けておいてみようかなと……。

ドラマのシーンとセリフを切り取ったあらすじレビュー(復習ネタバレ)と感想を中心としたブログです

トラックバック送信のやり方

送信する場合は、各記事投稿画面の右上「表示オプション」タブを開いて「トラックバック送信」にチェックを入れると、投稿画面下にトラバURL記入欄が出て来るので、そこから送信できます。

ただ、WordpressはPIN送信暴走する性質があり、同じ所にスパムのようにトラバを送り続けてしまうので、私は別の方法で送っています。(面倒ですが、送る量はそう多くないので。)

「はてなブログ」「wordpress」「アメブロ」など、トラックバック機能がないブログからTBあるいはPING送信する方法。

コメント

※アドレスは必須ではありませんがGravatarでアバター設定している方は記入しないと画像が出ません。(アドレスは表示されません)。キャプチャーにチェックの上、送信お願い致します。承認後表示されます。

内容をご確認の上、「送信」ボタンを押してください。