質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Q&A

0回答

722閲覧

WordPress cronで設定したフック、関数が実行されたか判断したい

shimon11

総合スコア50

cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

0グッド

0クリップ

投稿2021/05/27 03:47

編集2021/05/27 04:40

前提・実現したいこと

WordPressのwp_schedule_event 関数を使って自動でプラグインをアップデートする関数を実行させたいです

その際、もしエラーが出たときの判断をしたいです

該当のソースコード

php

1/** 2 * 1日1回実行する関数 アクセスが無ければ実行されない 3 */ 4function cron_auto_function() { 5 /** 6 * プラグインをアップデートする 7 */ 8 exec( 'wp plugin update --all' , $output, $return_var); 9 if ( $return_var !== 0 ){ 10 $result = 'false'; 11 } 12 return $result; 13} 14add_action ( 'auto_cron', 'cron_auto_function' ); 15 16/** 17 * イベントの実行 18 */ 19if ( !wp_next_scheduled( 'auto_cron' ) ) { 20 wp_schedule_event( time(), 'daily', 'auto_cron' ); 21} 22 23//これではこの関数を呼出した瞬間にアップデートが毎回走ってしまう 24if ( cron_auto_function() == 'false' ) { 25 exit(); 26}

exec関数の返り値にfalseをもたせてみたのですがこれでは関数を呼び出した瞬間にアップデートが走ってしまうのでこれを一日一度行いたいです

wp_schedule_eventではwp_errorの引数をもたせることも出来るようですがこれはイベントのセットした場合になってしまいそのフック(今回であれば'auto_cron')が実行されたときではないので上手く行かないです
https://runebook.dev/ja/docs/wordpress/functions/wp_schedule_event

もしお心優しい方いましたらアドバイスいただければ幸いです

私が思いつく実装方法

  • 関数が正常に実行されたらテーブルに値を代入する
  • フックが正常に動作したかどうかを判断する関数を見つける
  • exit やreturnなどで関数の実行を止める

この辺りかなと思うのですがいい関数や形はありますでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hiok

2021/05/28 00:08

エラーが出た時に何をしたいのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問