Skip to content

Kaikki WordPressistä, web-kehityksestä — ja paljon muuta

🚀 WordPress-liitännäisten automaattinen päivitys GitHubista: vaiheittainen asennus

🚀 WordPress-liitännäisten automaattinen päivitys GitHubista: vaiheittainen asennus

Olet julkaissut uuden plugin-version GitHubissa, mutta käyttäjät ovat jumissa vanhassa. ZIP-pakettien lataaminen käsin, lataaminen hallintapaneelin kautta, yhteensopivuuden tarkistaminen: rutiinitehtäviä, jotka syövät aikaa ja tuottavat virheitä.

Tavallinen WordPressin päivitysmekanismi on sidottu viralliseen WordPress.org-hakemistoon. Mutta kaikki pluginit eivät päädy sinne: asiakaskohtaiset ratkaisut, sisäiset tiimityökalut, suosittujen pluginien muokatut versiot. Nämä tarvitsevat toisenlaisen reitin.

Onneksi päivitysten toimittaminen suoraan GitHubista ratkaistiin jo kauan sitten. Alla on kaksi toimivaa tapaa: yksinkertainen (Git Updater -plugin, pari klikkausta) ja edistynyt (sisäänrakennettu PHP-luokka täyteen hallintaan).

💡 Pikavertailu:

  • Asenna Git Updater: se poimii GitHub-julkaisut tavallisina WordPress-päivityksinä
  • Yksityisille repositorioille määritä pääsytoken pluginin asetuksissa
  • Jos kirjoitat omaa pluginia ja haluat upottaa automaattiset päivitykset koodiin: käytä sisäänrakennettua PHP-luokkaa
  • Repositorion täytyy sisältää kelvollinen plugin-otsake ja versiotagi

Tapa 1: Git Updater, kahden klikkauksen päivitykset

Git Updater -lisäosan käyttöliittymä WordPressille

Git Updater on ilmainen plugin, joka lisää tuen GitHubille, Bitbucketille, GitLabille ja Gitealle tavalliseen WordPress-päivitysnäkymään. Asennuksen jälkeen GitHubista tulevat pluginit ja teemat päivittyvät samassa paikassa kuin tavallisetkin: Kojelauta → Päivitykset.

Kehittäjä Andy Fragen on ylläpitänyt projektia vuodesta 2015. Git Updaterin GitHub-sivulla on yli 400 tähteä ja aktiivinen repositorio, johon tulee säännöllisesti committeja. Tietopankki osoitteessa git-updater.com kattaa asennuksen, tokenin määrityksen ja API:n käytön.

Asennus on yksinkertainen: lataa ZIP GitHub-julkaisusta, vie se WordPressiin kohdasta Pluginit → Lisää uusi → Lisää plugin ja aktivoi. Plugin alkaa heti seurata repositorioita, jotka on määritetty asennettujen pluginien ja teemojen otsakkeissa.

Yksityisiä repositorioita varten tarvitset tokenin. Luo Personal Access Token GitHubin kohdasta Settings → Developer settings → Tokens (käyttöoikeudet: repo yksityisille; julkisille ei tarvita tokenia), liitä se kohtaan Asetukset → Git Updater. Tämän jälkeen plugin näkee jopa suljetut repositoriot.

Tärkeä yksityiskohta: Git Updater tarkistaa repositoriosta X.Y.Z-muotoiset tagit (semanttinen versiointi). Jos tageja ei ole, päivitys ei toimi. Ennen julkaisua aseta aina tagi: git tag 1.2.0 && git push --tags.

Tapa 2: sisäänrakennettu PHP-luokka kehittäjille

Jos olet plugin-kehittäjä ja haluat upottaa automaattisen päivitysmekanismin suoraan koodiisi (ilman erillistä välittäjäpluginia), klassinen PHP-luokkalähestymistapa toimii edelleen. Se on kevyempi kuin Joachim Kudishin ja radishconceptsin alkuperäinen luokka ja käyttää natiiveja WordPress-koukkuja.

Lisää seuraava koodi pluginisi päätiedostoon tai erilliseen updater.php-tiedostoon, joka sisällytetään require_once-komennolla:

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');

Koodi tekee tasan kolme asiaa: kysyy GitHubin API:lta uusinta julkaisua, vertaa tag_name-kentän versiota nykyiseen plugin-versioon, ja jos GitHubissa on uudempi, rekisteröi päivityksen tavalliseen WordPress-mekanismiin. Pluginin versio haetaan päätiedoston tavallisesta Version: X.Y.Z -otsakkeesta.

Huomio: julkisille repositorioille ei tarvita tokenia, mutta GitHubin API ilman tokenia rajoittaa pyyntötiheyden 60:een tunnissa per IP. Tuotantopluginille, jolla on paljon käyttäjiä, lisää tulosten välimuistitus set_transient()-funktiolla 6-12 tunniksi. Näin et osu rajaan joka kerta, kun joku vierailee plugin-sivulla.

Lähestymistapojen vertailu

Kriteeri

Git Updater

Sisäänrakennettu PHP-luokka

Asennuksen monimutkaisuus

Minimaalinen (asenna ja se toimii)

Keskitaso (täytyy kirjoittaa ja testata koodi)

GitLab/Bitbucket-tuki

Kyllä (API-lisäosien kautta)

Ei (vain GitHub, vaatii erillisen koodin)

Yksityiset repositoriot

Kyllä (sisäänrakennettu token-tuki)

Kyllä (lisää Authorization-otsake)

Riippuvuus kolmannen osapuolen koodista

Kyllä (plugin täytyy päivittää)

Ei (koodi omassa pluginissasi)

API-pyyntöjen välimuistitus

Sisäänrakennettu

Täytyy toteuttaa itse

Sopii

Sivuston omistajille, freelancereille

Plugin-kehittäjille, toimistoille

Johtopäätös: jos asennat jonkun toisen GitHub-pluginia sivustolle, käytä Git Updateria. Jos olet plugin-kehittäjä, joka jakelee sitä GitHubin kautta, upota automaattiset päivitykset koodiin, jotta käyttäjien ei tarvitse asentaa ylimääräistä pluginia.

Repositorion valmistelu automaattisia päivityksiä varten

Riippumatta siitä, kumman tavan valitset, GitHub-repositorion on oltava kunnolla valmisteltu. Kolme pakollista kohtaa:

  • Plugin-otsake. Sisällytä PHP-päätiedostoon tavallinen WordPress-otsake: Plugin Name, Version, Author ja Plugin URI, jossa on linkki repositorioon. Git Updater lukee Plugin URI:n ja GitHub Plugin URI:n; määritä vähintään toinen.

  • Versiotagit. Liitä jokaiseen julkaisuun tagi: git tag 1.3.0 && git push origin 1.3.0. Ilman tageja Git Updater tai API-pyyntö eivät näe uutta versiota.

  • Readme-tiedosto. Lisää README.md, jossa on kuvaus, muutosloki ja asennuslinkki. Git Updater näyttää readmen sisällön pluginin tietonäytöllä, mikä säästää käyttäjien aikaa, kun heidän ei tarvitse käydä GitHubissa ohjeita varten.

GitHub Actionsilla voit mennä pidemmälle: tagin pushauksen yhteydessä voit automaattisesti rakentaa ZIP-paketin, luoda muutoslokin commiteista ja tehdä GitHub Releasen, johon arkisto liitetään. Valmis työnkulku löytyy virallisesta GitHub-dokumentaatiosta; mukauta se WordPressille korvaamalla build-vaihe pluginin paketoinnilla.

Video näyttää koko prosessin Git Updaterin asennuksesta ensimmäiseen automaattiseen plugin-päivitykseen. Suosittelemme katsomista ennen asennusta: 12 minuuttia ruutunauhoitusta säästää tunnin kokeilua.

⁉️🤔 Usein kysytyt kysymykset

Toimiiko Git Updater virallisen WordPress.org-hakemiston pluginien kanssa?

Kyllä, mutta siinä ei ole järkeä. WordPress.orgin pluginit saavat jo päivitykset tavallisen mekanismin kautta. Git Updater on nimenomaan plugineille ja teemoille, jotka eivät ole hakemistossa: räätälöidyt kehitystyöt, fork-versiot, tarkistuksessa olevat pluginit.

Voiko Git Updateria käyttää tuotantosivustolla?

Kyllä, projekti on vakaa ja sitä on ylläpidetty vuodesta 2015. Ennen asennusta tee täysi varmuuskopio (kuten minkä tahansa uuden pluginin kanssa). Testisivustolla tarkista vähintään yhden pluginin päivitys, varmista, että repositorion tagit on asetettu oikein ja päivitys menee läpi ilman virheitä.

Entä jos GitHubin API osuu pyyntörajaan?

Julkisille repositorioille raja on 60 pyyntöä tunnissa yhdestä IP-osoitteesta. Git Updater välimuistittaa vastaukset 12 tunniksi, joten ongelma ilmenee harvoin. Jos se ilmenee, luo ilmainen Personal Access Token (ilman lisäoikeuksia) ja lisää se kohtaan Asetukset → Git Updater: raja nousee heti 5000 pyyntöön tunnissa.

Mitä tehdä, jos GitHubissa oleva plugin käyttää Composer-riippuvuuksia?

Git Updater ei aja composer install -komentoa päivitysten yhteydessä. Jos pluginisi riippuu Composer-paketeista, upota autoloadaus nipun kautta (pakkaa vendor/ julkaisun ZIP-pakettiin) tai lisää päivityksen jälkeinen skripti, joka tarkistaa riippuvuudet ja varoittaa ylläpitäjää, jos ne puuttuvat.

Voiko plugineja päivittää yksityisestä repositoriosta ilmaisella GitHubilla?

Kyllä. Ilmaiset GitHub-tilit sisältävät rajattomasti yksityisiä repositorioita. Luo Personal Access Token, jossa on repo-oikeus, lisää se Git Updateriin, ja plugin saa pääsyn yksityisiin repositorioihisi.

Automaattiset päivitykset GitHubista: mitä käyttää vuonna 2026

Sivuston omistajalle vastaus on selvä: Git Updater. Ilmainen, vakaa, ei vaadi koodia.

Plugin-kehittäjälle valinta riippuu kohdeyleisöstä. Jos tuotteesi asentavat tavalliset käyttäjät, upota automaattisen päivityksen PHP-luokka suoraan pluginin koodiin. Ylimääräinen välittäjäplugin ketjussa vähentää asennuskonversiota. Jos tuote on tekniselle yleisölle, Git Updater riippuvuutena on hyväksyttävä; mainitse siitä vain ohjeissa.

Tarkista GitHub-pluginisi heti: onko uusimmissa julkaisuissa tagit asetettu, onko Plugin URI täytetty otsakkeessa, onko käyttäjällä selkeä päivityspolku? Viisitoista minuuttia asennusta säästää sinut ja käyttäjäsi manuaaliselta ZIP-arkistojen kanssa säätämiseltä vuosiksi eteenpäin.