web-dev-qa-db-ja.com

ワードプレスがプラグインの更新をどのように検出するか

私はwpプラグインの開発者であり、WPがどのプラグインにアップデートがあるかをどのように検出するのか知りたいですか?私はそれがすでにwordpress.orgレポジトリに入っているこれらのプラグインについては大丈夫だと思います。しかし、自分のリポジトリに格納されているこれらのプラグインに対して同じメカニズムをどのように実装することができますか? (すでにいくつかのグーグルを作った、残念ながら何の情報も見つけることができません)。ありがとうございます。

3
Epsiloncool

WordPressが12時間以上経過すると自動的に消えて、WordPressリポジトリからプラグインを更新する必要があるかどうかを確認します。 WordPressが物事をチェックするために実行する3つのcronジョブがあります。

  • wp_version_check - コアアップデートをチェックする
  • wp_update_plugins - プラグインの更新を確認する
  • wp_update_themes - テーマの更新をチェック

これらを表示するためのきちんとした小さなプラグインは WP Crontrol です。現在、WP CronsはServer Cronjobとは異なり、特定の状況で条件が満たされたときに実行されます(current_time> = 12 AND ...)。条件がどうなっているか完全にはわかりませんが、管理者パネルの要求のようです。

データベースにはこの情報の多くを保持するオプションがあります。間違えない限り、各cronには独自の一時的なものがあります。wp_optionsステートメントを使用して_site_transientテーブルでLIKE%..%テーブルを検索し、表示内容を確認できます。

_site_transient_update_pluginsオプションは、最後にチェックしたタイムスタンプ、チェックしたプラグイン、更新が必要なプラグイン(パッケージURL、新しいバージョンなどの配列)のような情報を保持します。ユーザーが更新をクリックするのを非常に簡単にします(データベースに更新URLがあるページを探す必要がないため)。

私は これで遊んだ 少しの間まだそれを十分に理解していないが、うまくいけば上記の説明があなたにそれがどのように機能するかのアイデアを与える。

WordPresがあなた自身のプライベートリポジトリ用のプラグインを更新する限り、それにはいくつかの異なる種類があります。 WooCommerceには、ほとんどの更新を処理するヘルパープラグインがあります。Githubから更新をプッシュするコードがいくつかあります。 これが回答です 私は正しい方向に進みました。結局のところ、それを行うのが最も簡単で直接的なことではありません。

4
Howdy_McGee