動いていたものが動かない・・・な訳で

この記事は約3分で読めます。

WordPressのテーマを変えてから、なぜかプログラムの挙動がおかしくて、どうしたらいいのか、ずっと試行錯誤しておりましたが、ようやく解決しました。おはこんばんにちは。

Unsplash / Pixabay

動作環境

WordPress:バージョン 4.6.1
サーバー:さくらインターネット(スタンダード)
PHP:5.4
MySQL:5.5.28
テーマ:Simplicity(子テーマ使用)

動いていたものが動かない

テーマを変更してから、下記のプログラムが動かない事に気づきました。

  • 予約投稿
  • PING送信

「予約投稿」は、キャッシュ系プラグインが原因で動かなくなるそうです。「PING送信」が無反応になる原因は見つからず、プラグインを全部止めてみたり、テーマを変更してみても解決せず、今日至る。
予約投稿が動かないのは、まだいいが、PING送信が無反応なのは、寂れた日記を書いている者にとっては、致命的である。

キャッシュ系のプラグイン

テーマ「Simplicity」とキャッシュ系のプラグインの相性の悪さがあるので、「WP File Cache」「MO Cache」「WP Super Cache」「W3 Total Cache」などは使用しておりませんでしたが、テーマ変更時に「SNS Count Cache」というプラグインを入れました。挙げられていませんが、こちらもキャッシュ系と言えばキャッシュ系。

SNS Count Cache

ソーシャルメディアのシェア数やフォロワー数をキャッシュしてカウント数の表示を高速化できるプラグイン。

しかし、このプラグインを入れてから、SNSボタンの表示以降が真っ白になるという現象が起こりました。手動で[Cache]ボタンを押した後、ページが表示される事から、このプラグインが起因し悪さをしている事が判明したので、このプラグインは削除(管理画面から削除できず、サーバーに接続し削除)。
検索すると、入れているブログが多かったので入れましたが、SNSボタンを押されない我がブログには、全く必要の無いプラグインでした。

検索する日々

検索していると、SNS Count Cacheはプラグインを消しても、cronに大量のイベントが残り、それを消す事で予約投稿が回復したとの記事を見たので試みる。
管理画面から「WP Crontrol」というプラグインを入れ、ツール→Cron Eventsで確認すると、案の定「scc_****」というイベントが大量に・・・。私のブログも同様、SNS Count Cacheをデータごと削除しても、Cron Eventは残ったままでした。

Cronのイベント削除

phpMyAdminからログインし、optionsテーブルにあるoption_name「cron」の中身を全て削除した。
削除し、Cron Eventsで確認すると、6個程度のイベントが表示されるだけとなった。
試しに、テスト記事を予約投稿し、Cron Eventsを見ると、Hook Name「cbnetpo_ping」「publish_future_post」というイベントが追加されるのを確認した。
どうやら、SNS Count CacheのCronイベントで埋め尽くされ、予約投稿とPING送信のイベントが入るスペースが無かったのかと思われる。

まとめ

WordPress高速化に欠かせない、キャッシュ系のプラグインですが、アクセスの多い人気ブログならば必要なのかもしれんが、この世の果てのような我がブログで、果たして必要だったのか・・・(笑)。
闇雲にキャッシュ系プラグインは、入れるべきでは無いっすね。ハマる原因だわ。
そりゃ、ワシの右瞼も痙攣しますわい!

コメント