コンテンツにスキップ

WordPress のピンバック・トラックバック機能を無効化する方法

メインイメージ

WordPress の投稿のピンバック・トラックバック受け付け機能を無効化する方法について説明します。

ピンバック・トラックバック機能の位置づけ

ピンバック・トラックバック機能は外部のブログと交流するための機能として存在していますが、今日では有効活用されるよりもスパムや DDoS 用途で悪用されるリスクの方が高いためあまり使われることはありません。

WordPress では後方互換性が非常に重視されているためデフォルトで有効化されたままになっていますが、メリットよりもデメリットの方が大きいため原則無効にするのがよいと思います。

ピンバック・トラックバック機能を無効化する方法(管理画面で行う場合)

新規投稿のデフォルト設定と既存の投稿に対する無効化の 2 つの作業が必要になります。

新規投稿のデフォルト設定

新規の投稿のデフォルト設定は「設定」→「ディスカッション」ページから行えます。 「新しい投稿に対し他のブログからの通知(ピンバック・トラックバック)を受け付ける」のチェックボックスのチェックを外して設定を保存してください。

WordPress の XML-RPC の無効化: 新しい投稿に対し他のブログからの通知(ピンバック・トラックバック)を受け付ける

既存の投稿の設定変更

既存の投稿については投稿設定の「ディスカッション」から行えます。 投稿の編集ページで投稿設定を開き「ディスカッション」をクリックして「ピンバックとトラックバックを許可」のチェックを外して設定を保存してください。

WordPress の XML-RPC の無効化: ピンバックとトラックバックを許可

ピンバック・トラックバック機能を無効化する方法( WP-CLI で行う場合)

同様の操作を WordPress のコマンドラインツール WP-CLI を使って設定することもできます。

新規投稿のデフォルト設定

# 設定項目 `default_ping_status` を削除する
# = ピンバック・トラックバック受け付け無効化する:
wp option delete default_ping_status

既存の投稿の設定変更

# 既存のすべての投稿に対して `ping_status` を closed に変更する:
wp post list --format=ids \
| xargs -d ' ' -I {} wp post update {} --ping_status=closed

Note

xmlrpc_enabled というフィルターフックを使えば XML-RPC 機能のうち認証が必要な操作を無効化できます。

add_filter( 'xmlrpc_enabled', '__return_false' );

しかし、ピンバック・トラックバックはこの無効化の対象に含まれません。 XML-RPC 機能を無効化してピンバック・トラックバックを無効化したい場合は、エンドポイント xmlrpc.php へのリクエストそのものを拒否するように設定する必要があります。

関連ページ