WordPressのカスタマイズ方法やプラグインレビューを中心に、パソコン/動物/植物のことなどを紹介するホームページです
Plugin "WordPress Ping Optimizer" to stop unnecessary ping transmission when updating posts

投稿更新時の無駄なping送信を停止するプラグイン「WordPress Ping Optimizer」

公開日:2016年2月13日 バックエンド(管理)

WordPressのいいところはHTMLで作ったサイトのように自由なサイトを作成しながら、ブログにあるようなコミュニケーション機能も備えていること。特に記事を作成したり編集したりするときに送られる「ping」送信はブログでアクセスアップを図るために作られた機能で、「記事が更新(作成)されました」という情報を検索エンジンなどに伝える便利な機能です。

ただ、WordPressのping送信機能には少し難点があって、記事の作成や編集を行う度に設定された場所へping送信を行ってしまうこと。通常記事を作成する際には公開後に何度も修正を行うことがあるものです。そのたびにping送信されてしまうと重複した記事の更新情報が送信され続けることになり、いわゆる「ping更新スパマー」として扱われ、アクセスアップに貢献するはずの機能が仇となる可能性があります。

「WordPress Ping Optimizer」はこの重複ping送信を制限することのできるプラグインです。たくさんありそうなプラグインですが、WordPressの公式サイトで検索しても同様の機能のものがない、唯一のプラグインではないかと思われます。

もう一つの機能として予約投稿の際、予約設定時ではなく予約記事の公開時にpingをきちんと送信する機能があります。

また、pingの送信そのものを停止する機能があり、大量の記事メンテナンスをする際などには便利です。標準のままpingを止めるには設定画面の「投稿設定」にある送信先を全てメモ帳などに退避させる必要がありますが、そのわずらわしさがありません。

※PHPバージョン7.2以降で使用する場合、デバックモードを有効にするとフロントエンドに以下のエラーが発生します

count(): Parameter must be an array or an object that implements Countable in...

詳しい対処方法はこのページ下の「countエラーの対応方法」を参照ください。

【WordPress Ping Optimizer】プラグインの基本的な機能・できること

  1. 記事作成時にのみping送信を行う
  2. 記事の編集時にはping送信しない
  3. 記事公開の間隔が短い場合にはping送信しない
  4. ping送信そのものを停止する

本記事を参考にWordPressサイトへプラグインの導入を検討される方へ

WordPressは古くから無料で配布されているサイト作成ツール(CMS)で、随時改良が加えられており、さまざまなバージョンが存在します。さらにWordPressを動かすためのプログラムであるPHP、サイトのデータを保存しておくためのデータベースについても様々なバージョンがあります。そしてWordPress本体同様にプラグインについてもさまざまなバージョンが存在します。本記事を参考にプラグインの導入をお考えの方は、以下に留意の上でインストールするようにしてください。

  • テスト環境での動作に基づいた紹介記事ですので、すべての環境で正常に動作するかどうかは不明です
    ※本記事の内容についてはページ内に記載しているプラグインバージョンのものになります。現在のバージョンと異なる場合、機能などが異なる場合があります。
    ※また、ページによってはテスト環境、テストしたプラグインバージョン等の表示が本文内にない場合、ページタイトル下にある最終更新日当時の情報となりますので、現在のバージョンでは全く違う機能となっているかも知れません。
  • プラグインに無料版と有料版(Pro版)がある場合、特に記載がなければ無料版の情報のみを紹介しています
  • このページでプラグインを使用する際に必要なショートコードやコードなどは、コピーして使用することができますが、環境によっては記号などが文字化けすることがあります。コピーしたのに動作しない場合は特に「”」「’」などの記号を入力し直してみてください。
  • プラグイン本体の動作不具合や質問などは公式サイトのフォーラムなどで行ってください(ここでは質問にお答えすることはできません)

【WordPress Ping Optimizer】プラグインの設定画面や表示の日本語化と翻訳

【WordPress Ping Optimizer】プラグインは設定項目が少ないので特に必要ないと思います

【WordPress Ping Optimizer】プラグインのインストールと設定

インストール方法

インストールはプラグインの新規追加でプラグイン名を入力して検索してインストールするか、ページ先頭の画像をクリックして表示されるWordPressのプラグイン公式配布ページがダウンロード後、管理画面からアップロードインストールしてください。

WordPressを使い始めて間もない方(初心者の方)は、より詳細なプラグインのインストール手順や、インストール時に起こる問題などへの対処方法をまとめた【WordPress】プラグインのインストール&追加方法とエラー対処の方法も併せてご覧ください。

【WordPress Ping Optimizer】プラグインの基本的な使い方

インストールしたら「設定」→「WordPress Ping Optimizer」へ行き設定を行います

設定箇所は

  1. Enable pinging/ping機能を使うかどうか
  2. Limit excessive pinging in short time/チェックすると短い間隔でのpingを制限することができます。「Ping at most □ time(s) within △ minute(s)」の部分に△分の間に□回の更新pingを送信できるようにするという感じで設定します

Pingの送信先はWordPressの投稿設定から引用してきますので、プラグインの設定画面で行っても、WordPressの投稿設定から行っても反映されます。「WordPress Ping Optimizer」の入力窓は小さいので、WordPress標準の設定画面で行った方が見やすいと思います。

【WordPress Ping Optimizer】プラグインの便利な使い方・カスタマイズ方法など

より便利に使うカスタマイズ技やテストサイトで使用した結果や感想、WordPressのプラグイン公式配布ページには書かれていない事柄などを紹介します。

不具合かもしれない情報

現在確認中ですが、ログが1000を超えるとping送信が行われていないのでは?ということです。
ログを見る限りではping送信が行われていたことにはなっているのですが、「にほんブログ村」というブログランキングサイトで確認してみると、ping送信済みとなっている記事がブログ村の「新着記事」として反映されていないときが発生しました。

ブログ村がどんな仕組みで動作しているかが不明なので何とも言えないですが、pingとRSSフィードを使って記事を読み込んでいるには違いがないですし、RSSフィード自体は更新されているので、怪しいのはpingかな?という程度です。

確認した際にログの件数がジャスト1000だったので気になっています。一度ログをクリアして現象が出るかを確認中です。

ログの肥大化に注意

このプラグインはpingを送信するたび(編集時に送信しない場合も含む)にデータベース上にログを残していきます。期間によってこのログを自動削除するなどの機能がないため、使い続けていると際限なくログが増えていきます。気が付いたらログだけですごい容量になってしまうので定期的にログを削除するようにしましょう。

ログの削除はWordPress Ping Optimizerの設定画面上からボタン1クリックでできます。

countエラーの対応方法

冒頭で書いた通り、PHPバージョン7.2以降ではエラー情報がフロントエンドに吐き出されることがあります。wp-config.phpを編集してデバックモードをOFFにすれば表示されなくなりますが、できれば修正しておきたいところですね。

プラグインのファイルを直接修正することになりますが、以下の手順で対応可能です。

管理画面からプラグインプラグインエディタを開きます

右上の選択画面から「WordPress Ping Optimizer」を選択します

553行目付近にある

$pingCount=count($this->cbnetpo_future_pings);

if (is_countable($this->cbnetpo_future_pings)) {
$pingCount=count($this->cbnetpo_future_pings);
}

に書き換えます。

WordPressのカスタマイズ・不具合対応などご相談ください

Wordpressのカスタマイズ、不具合解消のご相談はすべてココナラのダイレクトメッセージからお受けしております。まずはこちらのバナーからお気軽にお問い合わせください。