やりたいこと
wordpressの予約投稿機能を使いたいのですが、普段wp-cronを無効にしているためデフォルトの予約投稿が使えません。
そこで、cronを用いてwp-cron.phpを呼び出せば動くという情報を元に試しているのですが予約投稿が上手くいきません。
参考サイト
[WordPress] WP-Cronを本職のcronに任せる
やったこと
/usr/local/wpcron.sh を作成
下記の内容
#!/bin/bash # # wp-cronをCLIから実行する # #--------------------------------------- # 定数 #--------------------------------------- # WORDPRESSをインストールしたディレクトリ #ここは自分のWPのパスに書き換えました。 WP_ROOT='/web/wordpress' #--------------------------------------- # 実行 #--------------------------------------- /usr/local/bin/wp cron event run --due-now --path=$WP_ROOT
ためしに手動で実行
cd /usr/local ./wpcron.sh
予約投稿成功しました。
なのでcrontabでこのシェルスクリプトを1分ごとに実行するように指定しました。
crontab -e
cron
1* * * * * cd /usr/local; ./wpcron.sh
これだと動きませんでした。
cronが動いているかの切り分けとして
シェルスクリプトに以下の記述を追加して動作しているか試しましたがtest.txtにtestと追記されていましたので、
cron自体は動作していると思います。
echo 'test' >> /var/www/test.txt
cron自体は動いているので1行目のパスが悪いのか、実行フォルダが悪いのか・・・
追記
cron実行時にメールが届くようにしていたのですが、以下のようなメールが届きました。
「/usr/bin/wpcron.sh」とあるのですが実際にあるのは「/usr/local/wpcron.sh」でした・・・
/bin/sh: /usr/bin/wpcron.sh: No such file or directory
何かヒントでもあればうれしいので少しでも分かる方がいたら教えてもらえないでしょうか?
よろしくお願いいたします。