無駄と文化

実用的ブログ

WP-Cron を cron から叩く

WP-Cron を cron から叩くとサイトの表示が若干軽くなるとのことでやってみた。
結論、問題なく動いている。

やりかた

すでに多くの人が解説しているので割愛。 やるべきことは、

  • define('DISABLE_WP_CRON', true); を設定してデフォルトの動作を止める
  • cron 設定で wp-cron.php を定期的に叩くようにする

具体的にはこちらのサイトを参考に、 hacknote.jp

注意点

cron 設定について、

  • cron を毎分実行するように設定しようとしたら「毎分実行は負荷が大きくなりがちなので制限をかけるかも」と注意喚起された *1
  • なので5分に一度 cron 実行するように設定を変えた
  • そうすると WP-Cron の実行も最大で5分遅延する恐れがある

PHP の実行時、

  • php コマンドで wp-cron.php を叩く場合、 $_SERVER['SERVER_NAME'], $_SERVER['REQUEST_METHOD'] などが取得できない。場合によっては PHP スクリプトの修正が必要になるかも
  • curl https://example.com/wp-cron.php とかすれば回避できるけど、特定の IP からしかアクセスを許していない条件下では使えない

補足

ちゃんと動作するか最初は不安だと思うので、 WP Crontrol を使ってタスクやログをウォッチしながらやると安心できる。

 

私からは以上です。

*1:共用サーバー (エックスサーバー) を利用しているのでこのような注意喚起が出たみたいです

ラジオボタンのコーディングは

ラジオボタンのコーディングは、

<div>
  <input type="radio" name="foo" value="hoge">
  <input type="radio" name="foo" value="fuga">
  <input type="radio" name="foo" value="piyo">
</div>

ではなく

<div>
  <input type="hidden" name="foo" value="">
  <input type="radio" name="foo" value="hoge">
  <input type="radio" name="foo" value="fuga">
  <input type="radio" name="foo" value="piyo">
</div>

と書こう。

送信先の画面で

<?php
echo $_GET["foo"];

みたいに値を参照できるので便利です。
(Undefined index の Notice が出ない)