WordPress でブログ記事を書くときに内部リンクを貼ることがあると思います。たとえば、自分のサイトの関連する過去記事を参照するために内部リンクを貼ったりします。また、シリーズ記事などを書くときにも連載記事を順に読んでいただけるように内部リンクを貼るかもしれません。
内部リンクを貼ることによって直帰率を下げて、サイト内に長く留まるよう誘導する効果があります。しかし、内部リンクを貼った記事を公開すると「 モデレート してください」というメールが届きます。
ピンバックとは
たとえば、当ブログサイトの記事を書くときに、参考になった他のサイトのURLを記事の中に挿入することがあります。さて、その記事を公開するときに WordPress は、記事の中にURLが含まれていないかを自動的に検出します。
もし、URLが検出されると WordPress は、「あなたのサイトのURLを貼った記事が公開されましたよ」ということをそのリンク元のサイト管理者に自動的に通知するという機能があります。これがピンバックを呼ばれるものです。
リンク元のサイト管理者がピンバックを承認してくれた場合は、当ブログサイトの記事のURLが、リンク元の記事の下部に表示されるという仕組みです。
つまり、ピンバックには、外部リンクによるSEO効果が期待できるというわけです。
ピンバックの面倒な点
ブログ記事を書くときに、自サイトの関連する過去記事のURLを挿入することがあります。そうすることで直帰率を下げ、サイト内の回遊率を引き上げる効果が期待できます。
ところが、WordPress は、自サイトのURLを挿入した場合にも、ピンバック機能を発動してしまうのです。つまり、自サイトのURLを挿入した記事を公開する度に、自分自身にピンバックの通知メールが届くことになります。これをセルフピンバックと呼ぶそうです。
これは大問題というわけではありませんが、さすがにセルフピンバックの通知メールは不要だと感じる場合は、それを止めることができます。
セルフピンバックを止める方法
ピンバックを止める方法はいくつかありますが、ここでは4つの方法を挙げさせていただきます。
- WordPress の設定でピンバックを無効にする。
- プラグインを使う。
- functions.phpを調整する。
- リンクを絶対パスから相対パスにかえる。
WordPress の設定でピンバックを無効にする
WordPress の管理画面で「設定」>「ディスカッション」を選択するとピンバックやメール通知の設定をすることができます。この方法は簡単ですが、セルフピンバックだけでなく、他のサイトへのピンバックも送らなくなってしまいます。そのため、今回の選択肢からは外します。
プラグインを使う
「No Self Pings」というプラグインを使ってセルフピンバックを止めることができるようです。ただし、最終更新が1年前になっており、他のプラグインとの相性や最新バージョンの WordPress で動くかどうかなどの不安もあるのでわたしは使っていません。
functions.php を調整する
ネットで調べていますとこの方法もよく用いられているようです。ただし、修正に失敗すると WordPress が正しく動作しなくなる恐れがあります。初心者には向いていない方法かもしれません。
また、functions.phpはテーマごとの関数なので、テーマを変更すると追記したコードはクリアされてしまいます。また、テーマをアップデートした場合も、クリアされるようです。もちろん、子テーマを作っている場合は問題ないと思いますが。。。
とはいえ、すでに大量に内部リンクを貼っている場合は、この方法はとても効率的かもしれませんね。では、早速、手順を確認しておきましょう。
- functions.phpの場所を探す
- functions.phpのバックアップをとる
- functions.phpにコードを追記する
functions.phpの場所を探す
ではまず、functions.phpの場所を探しましょう。これはテーマごとの関数なのでテーマごとのフォルダ下にあります。
FTPソフトで探す場合は、以下のフォルダ直下にあるはずです。
- WordPress インストールフォルダ/wp-content/themes/テーマ名/functions.php
functions.phpのバックアップをとる
functions.phpの編集に失敗すると WordPress が動かなくなる危険があるので、事前に必ずバックアップを取っておく必要があります。FTPソフトを使って、いつでも元に戻せるようバックアップを取っておきましょう。
functions.phpにコードを追記する
WordPress管理画面からfunctions.phpにアクセスできます。「外観」>「テーマの編集」を選択します。
次に、テーマの編集画面で 「テーマのための関数(functions.php)」を選択します。管理画面上で編集することができるようです。
functions.phpに追記するのは下記のコードです。
function no_self_ping( &$links ) {
$home = get_option( 'home' );
foreach ( $links as $l => $link )
if ( 0 === strpos( $link, $home ) )
unset($links[$l]);
}
add_action( 'pre_ping', 'no_self_ping' );このコードは下記サイトで紹介されているものです。
functions.phpのどこに追記するかでも迷うかもしれません。
functions.phpファイルの末尾に終了タグ「?>」がある場合
⇒ その直前の行に挿入すれば間違いないのではないかと思います。
functions.phpファイルの末尾に終了タグ「?>」がない場合
⇒ ファイルの末尾に追加すれば間違いないのではないかと思います。
functions.phpに追記すればセルフピンバックは止まるはずです。
リンクを絶対パスから相対パスに替える
自サイトの過去記事を参照する場合は、絶対パスではなく相対パスで記載するという方法です。
例を挙げますと、投稿しようとしている記事のURLが「https://△△△△△.co.jp/blog/aaa/hogehoge.php」だとします。その記事の中で下記に挙げる3つの過去記事へのリンクを貼る場合、絶対パスと相対パスはそれぞれ次のような表記になります。
| 絶対パス | 相対パス |
| https://△△△△△.co.jp/blog/aaa/hoge.php | ./hoge.php |
| https://△△△△△.co.jp/blog/bbb/fuga.php | ../bbb/fuga.php |
| https://△△△△△.co.jp/blog/piyo.php | ../piyo.php |
当サイトもこの方法を使っています。WordPress やテーマのバージョンアップまたは変更といったことにも影響されませんので、この方法はなかなか良いのではないでしょうか。では今回はここまで。



