Skip to content

Kõik WordPressist, veebiarendusest — ja mitte ainult

🚀 WordPressi pluginite automaatne uuendamine GitHubist: samm-sammuline seadistamine

🚀 WordPressi pluginite automaatne uuendamine GitHubist: samm-sammuline seadistamine

Olete avaldanud uue pluginaversiooni GitHubis, kuid kasutajad on endiselt vana versiooni peal. Käsitsi ZIP-failide allalaadimine, halduspaneeli kaudu üleslaadimine, ühilduvuse kontrollimine: rutiinsed toimingud, mis neelavad aega ja tekitavad vigu.

Tavaline WordPressi uuendusmehhanism on seotud ametliku WordPressi.org kataloogiga. Kuid iga plugin ei jõua sinna: kohandatud kliendilahendused, sisemised meeskonnatööriistad, populaarsete pluginatega tehtud harud koos muudatustega. Need vajavad teistsugust teed.

Õnneks lahendati uuenduste otse GitHubist tarnimine juba ammu. Allpool on kaks toimivat meetodit: lihtne (Git Updateri plugin, paar klikki) ja edasijõudnutele (sisseehitatud PHP klass täielikuks kontrolliks).

💡 Kiirülevaade:

  • Paigaldage Git Updater: see tuvastab GitHubi väljalasked tavaliste WordPressi uuendustena
  • Privaatsete repositooriumide jaoks konfigureerige juurdepääsutoken plugina seadetes
  • Kui kirjutate oma pluginat ja soovite koodi automaatsed uuendused sisse ehitada: kasutage sisseehitatud PHP klassi
  • Repositoorium peab sisaldama korrektset plugina päist ja versioonisilti

Meetod 1: Git Updater, kahe kliki uuendused

Git Updater plugin WordPressi liides

Git Updater on tasuta plugin, mis lisab tavalisele WordPressi uuenduste ekraanile toe GitHubile, Bitbucketile, GitLabile ja Giteale. Pärast paigaldamist uuenevad GitHubist pärit pluginad ja teemad samas kohas kui tavalised: Töölaud → Uuendused.

Arendaja Andy Fragen on projekti hooldanud alates 2015. aastast. Git Updateri GitHubi lehel on üle 400 tärni ja aktiivne repositoorium regulaarsete commit'idega. Teadmusbaas aadressil git-updater.com hõlmab paigaldamist, tokeni seadistamist ja API kasutamist.

Paigaldamine on lihtne: laadige ZIP alla GitHubi väljalaskest, laadige üles Plugins → Add New → Upload Plugin kaudu ja aktiveerige. Plugin hakkab kohe jälgima paigaldatud pluginatega ja teemade päistes määratud repositooriume.

Privaatsete repositooriumide jaoks vajate tokenit. Looge Personal Access Token GitHubi seadetes Settings → Developer settings → Tokens (õigused: repo privaatsele; avalikule tokenit pole vaja), kleepige see Settings → Git Updater. Pärast seda näeb plugin isegi suletud repositooriume.

Oluline detail: Git Updater kontrollib repositooriumis silte vormingus X.Y.Z (semantiline versioonimine). Kui silte pole, siis uuendus ei toimi. Enne väljalaset määrake alati silt: git tag 1.2.0 && git push --tags.

Meetod 2: sisseehitatud PHP klass arendajatele

Kui olete plugina autor ja soovite automaatse uuendamise mehhanismi otse oma koodi sisse ehitada (ilma eraldi vahendava pluginata), siis klassikaline PHP klassi lähenemine töötab endiselt. See on kergem kui Joachim Kudishi ja radishconceptsi algne klass ning kasutab WordPressi natiivseid konkse.

Lisage järgmine kood oma plugina põhifaili või eraldi updater.php faili, mis kaasatakse require_once kaudu:

1/**
2 * Auto-update from GitHub releases.
3 * Place in main plugin file or include via require_once.
4 */
5function myplugin_check_github_update($transient) {
6 if (empty($transient->checked)) {
7 return $transient;
8 }
9
10 $plugin_slug = 'my-plugin/my-plugin.php';
11 $github_repo = 'username/my-plugin';
12
13 $response = wp_remote_get(
14 'https://api.github.com/repos/' . $github_repo . '/releases/latest',
15 array(
16 'headers' => array(
17 'Accept' => 'application/vnd.github.v3+json',
18 'User-Agent' => 'WordPress/' . get_bloginfo('version'),
19 ),
20 )
21 );
22
23 if (is_wp_error($response) || wp_remote_retrieve_response_code($response) !== 200) {
24 return $transient;
25 }
26
27 $release = json_decode(wp_remote_retrieve_body($response));
28
29 if (!isset($release->tag_name)) {
30 return $transient;
31 }
32
33 $latest_version = ltrim($release->tag_name, 'v');
34 $current_version = $transient->checked[$plugin_slug] ?? '0';
35
36 if (version_compare($latest_version, $current_version, '>')) {
37 $transient->response[$plugin_slug] = (object) array(
38 'slug' => dirname($plugin_slug),
39 'new_version' => $latest_version,
40 'url' => 'https://github.com/' . $github_repo,
41 'package' => $release->zipball_url,
42 );
43 }
44
45 return $transient;
46}
47add_filter('pre_set_site_transient_update_plugins', 'myplugin_check_github_update');

Kood teeb täpselt kolme asja: pärib GitHubi API-lt viimase väljalaske, võrdleb tag_name versiooni praeguse plugina versiooniga ja kui GitHubis on uuem, registreerib uuenduse tavalises WordPressi mehhanismis. Plugina versioon võetakse põhifaili standardsest Version: X.Y.Z päisest.

Märkus: avalike repositooriumide jaoks pole tokenit vaja, kuid GitHubi API ilma tokenita piirab päringute sagedust 60 päringuni tunnis ühe IP kohta. Paljude kasutajatega tootmisplugina puhul lisage tulemuste vahemällu salvestamine set_transient() abil 6-12 tunniks. Nii ei taba te limiiti iga kord, kui keegi pluginate lehte külastab.

Lähenemisviiside võrdlus

Kriteerium

Git Updater

Sisseehitatud PHP klass

Seadistamise keerukus

Minimaalne (paigaldad ja töötab)

Keskmine (vaja koodi kirjutada ja testida)

GitLabi/Bitbucketi tugi

Jah (API lisade kaudu)

Ei (ainult GitHub, vajab eraldi koodi)

Privaatsed repositooriumid

Jah (sisseehitatud tokeni tugi)

Jah (lisa Authorization päis)

Sõltuvus kolmanda osapoole koodist

Jah (vaja pluginat uuendada)

Ei (kood on sinu plugina sees)

API päringute vahemälu

Sisseehitatud

Vaja ise realiseerida

Sobib

Saidihaldurid, vabakutselised

Pluginaarendajad, agentuurid

Järeldus: kui paigaldate saidile kellegi teise GitHubi pluginat, kasutage Git Updaterit. Kui olete plugina autor ja levitate seda GitHubi kaudu, ehitage automaatsed uuendused koodi sisse, et kasutajad ei peaks lisaprogrammi paigaldama.

Repositooriumi seadistamine automaatseteks uuendusteks

Ükskõik millise meetodi valite, peab GitHubi repositoorium olema korralikult ette valmistatud. Kolm kohustuslikku punkti:

  • Plugina päis. Peamises PHP failis lisage standardne WordPressi päis: Plugin Name, Version, Author ja Plugin URI koos lingiga repositooriumile. Git Updater loeb Plugin URI ja GitHub Plugin URI; määrake vähemalt üks.

  • Versioonisildid. Lisage igale väljalaskele silt: git tag 1.3.0 && git push origin 1.3.0. Ilma siltideta ei näe ei Git Updater ega API päring uut versiooni.

  • Readme fail. Lisage README.md koos kirjelduse, muudatuste logi ja paigalduslingiga. Git Updater kuvab readme sisu plugina teabe ekraanil, säästes kasutajate aega, kes ei pea juhiste saamiseks GitHubi külastama.

GitHub Actions abil saate minna kaugemale: sildi push'imisel ehitage automaatselt ZIP, genereerige commit'idest muudatuste logi ja looge GitHub Release koos lisatud arhiiviga. Valmis töövoog on saadaval ametlikus GitHubi dokumentatsioonis; kohandage see WordPressi jaoks, asendades build-sammu plugina pakendamisega.

Video näitab kogu protsessi alates Git Updateri paigaldamisest kuni esimese automaatse plugina uuenduseni. Soovitame enne seadistamist vaadata: 12 minutit ekraanisalvestust säästab tunni katsetamist.

⁉️🤔 Korduma kippuvad küsimused

Kas Git Updater töötab ametliku WordPress.org kataloogi pluginatega?

Jah, kuid sellel pole mõtet. WordPress.org pluginad saavad uuendusi juba tavalise mehhanismi kaudu. Git Updater on spetsiaalselt pluginatega ja teemade jaoks, mida kataloogis pole: kohandatud arendused, harud, ülevaatamisel olevad pluginad.

Kas Git Updaterit saab kasutada tootmissaidil?

Jah, projekt on stabiilne ja seda on hooldatud alates 2015. aastast. Enne paigaldamist tehke täielik varukoopia (nagu iga uue plugina puhul). Testisaidil kontrollige vähemalt ühe plugina uuendust, veenduge, et repositooriumi sildid on õigesti seatud ja uuendus rakendub vigadeta.

Mis siis, kui GitHubi API tabab päringulimiiti?

Avalike repositooriumide puhul on limiit 60 päringut tunnis ühelt IP-lt. Git Updater hoiab vastuseid vahemälus 12 tundi, nii et probleem tekib harva. Kui see siiski juhtub, looge tasuta Personal Access Token (ilma täiendavate õigusteta) ja lisage see Settings → Git Updater: limiit tõuseb kohe 5000 päringuni tunnis.

Mida teha, kui GitHubi plugin kasutab Composer sõltuvusi?

Git Updater ei käivita uuenduste ajal composer install. Kui teie plugin sõltub Composer pakettidest, ehitage automaatlaadimine sisse paki kaudu (pakendage vendor/ väljalaske ZIP-i) või lisage uuendusjärgne skript, mis kontrollib sõltuvusi ja hoiatab administraatorit, kui need puuduvad.

Kas pluginaid saab uuendada tasuta GitHubi privaatsest repositooriumist?

Jah. Tasuta GitHubi kontod sisaldavad piiramatul hulgal privaatseid repositooriume. Looge Personal Access Token repo õigusega, lisage see Git Updaterisse ja plugin saab juurdepääsu teie privaatsetele repositooriumidele.

Automaatsed uuendused GitHubist: mida kasutada aastal 2026

Saidihalduri jaoks on vastus selge: Git Updater. Tasuta, stabiilne, ei vaja koodi.

Pluginaarendaja jaoks sõltub valik sihtrühmast. Kui teie toodet paigaldavad tavalised kasutajad, ehitage automaatse uuendamise PHP klass otse plugina koodi sisse. Täiendav vahendav plugin ahelas vähendab paigaldamise konversiooni. Kui toode on tehnilisele sihtrühmale, on Git Updater sõltuvusena vastuvõetav; lihtsalt mainige seda juhistes.

Kontrollige oma GitHubi pluginaid kohe: kas viimastel väljalasetel on sildid seatud, kas Plugin URI on päises täidetud, kas kasutajal on selge uuendustee? Viisteist minutit seadistamist säästab teid ja teie kasutajaid aastatepikkusest käsitsi ZIP-arhiividega mässamisest.