Powered by Smartsupp
Webařské tipy

Aktualizace ve WordPress

Článek o aktualizacích obecně, aktualizacích WordPressu, pluginů, šablon a dalších.

Dnes budu sdílet svůj názor na vývoj SW (tak, jak jsem ho zažila na vlastní kůži a co jsem o něm přečetla), zkušenosti s aktualizacemi ve WP ekosystému a jak se starat o správu webů z jednoho místa.

Princip vývoje SW

Vývoj SW se vyvíjí tak rychle jako nic jiného. A nemluvíme jen o nových features, které SW (software) má, ale musíme do počtů také zahrnout opravy, testy, kompatibilitu s dalším SW (protože málokdy se vám poštěstí, abyste byli na písečku sami).

Ve valné většině SW se uchytilo číselné verzování, kdy následující verze je zpravidla vyšší než ta předchozí. Někdy může mít verze i nějaký hezký “krycí název”, jako je tomu např. u operačního systému Androidu. A zdaleka nejčastější systém číslování ve světě vývoje SW je tzv. sémantické verzování.

Sémantické verzování

Velice stručně řečeno, sémantické verzování je systém (zpravidla) 3 čísel oddělených tečkami, které dohromady označují konkrétní verzi SW.

Např. v případě verze 1.5.15 je vysvětlení následující:

  1. MAJOR verze (číslo “1” z příkladu)
    • je vždy uvedena první,
    • říká, kolik hlavních verzí SW bylo vydáno,
    • pokud se číslo zvýší, znamená to, že přichází změna, která v něčem není zpětně kompatibilní (např. odstraňuje starý kód a nahrazuje ho novým, odebírá nepoužívanou funkci, reaguje na vývoj programovacího jazyka jako takového a podobně).
    • Je zvykem na ni upozornit dlouho dopředu.
  2. MINOR verze (číslo “5” z příkladu)
    • je vždy uvedena na 2. místě,
    • říká, kolik vylepšení major verze bylo vydáno
    • pokud se zvýší, znamená to, že přichází změna, která přidává nějakou novou funkcionalitu k major verzi, ale je stále zpětně kompatibilní.
    • Je zvykem na ni upozornit dopředu.
  3. PATCH verze (číslo “15” z příkladu)
    • je vždy na 3. místě,
    • říká, kolik oprav minor verze už bylo uděláno,
    • pokud se zvýší, znamená to, že přichází oprava změny (minor verze), protože se v nějakém případě zjistil problém.

Příklad na vývoji pluginu

Představte si, že vyvíjíte např. formulář, který umí počítat:

  • je to jednoduchý plugin do WP,
  • umí zpracovat vstupní údaje od uživatele (z formuláře),
  • pod formulářem zobrazí výsledek výpočtu,
  • připravený formulář se vkládá do webu jako shortcode,

Je tak populární, že si ho každou chvíli někdo instaluje do WP webu.

V tomto případě by verzování vypadalo přibližně následovně:

  • 1.0.0: Formulář umí uložit data z textových polí. Zároveň má možnost přidat do formuláře jeden slider, a v administraci jde nastavit číslo (násobitel), kterým se pak vynásobí vstupní číslo ze slideru a zobrazí ho pod formulářem.
  • 1.1.0: Přidáte možnost více sliderů do formuláře.
  • 1.1.1: Zapomněli jste v administraci přidat možnost zadání různých násobitelů pro každý slider zvlášť, proto přichází oprava.
  • 1.2.0: Přidáte možnost číselného vstupu, který uživatel ručně vyplní. A do administrace přidáte možnost násobitele.
  • 2.0.0: přidáte super novou funkci, ale jste nuceni přejmenovat shortcodes (a ty staré už nepodporujete) – uživatel je musí na webu změnit.
  • 1.1.2: Místo násobení násobitele jen přičítáte, což je třeba samozřejmě opravit.
  • 2.0.1: máte v shortcode překlep (podporujete starý i nový).
  • … atd.

Z příkladu výše je důležité uvědomit si několik věcí:

  • Verze SW, jakmile je dostupná, může být použita kdekoli v jakékoli verzi. A to v jakékoli verzi – někdo běží na posledních aktualizacích a automaticky je stahuje (tady rovnou přijme opravy hned, jak vyjdou na svět), jiný aktualizace dělá párkrát za rok a má váš SW v jiné (neposlední) verzi. Tedy: váš chytrý formulář může naráz běžet na různých webech v různých verzích a vy, jako vývojář, máte na starosti všechny.
  • U SW se dělají opravy (patche) i neposledních minor verzí – to se neděje pořád, ale po nějakou dobu (např. poslední rok). Proto některé verze přestávají být po čase podporované apod.
  • Není pravidelnost v tom, jak často změny (major, minor nebo patch) přicházejí.

To abyste pochopili, jak složitý vývoj SW může být. K tomu si představte ještě závislosti na ostatním SW, v tomto případě jde “pouze” o WP. Někdy to mohou být i další pluginy, šablony a pod, kteréžto kombinace je potřeba všechny otestovat, že spolu fungují.

Upozornění: WordPress se bohužel tímto číslováním neřídí a tak i MINOR verze může “něco” rozbít.

  • major WordPress version is dictated by the first two sequences. For example, 3.5 is a major release. So is 3.63.7, all the way up to 4.0. Version 4.0 is no different than 3.9 and 4.1. There isn’t a “WordPress 3” or “WordPress 4” – we’re weird like that for historical reasons.

Aktualizace ve WordPress

Z výše zmíněného příkladu vychází, že jsou v podstatě 3 strategie, jak k aktualizacím SW přistupovat:

  1. Zapnout všechno na automatiku a důvěřovat vývojářům pluginů a šablon, že vše velice dobře vyvinou a otestují.
  2. Zapnout automatiku tam, kde tomu věříte (např. bezpečnostní pluginy, šablony apod). Tady je třeba konkrétnímu pluginu/šabloně/dalším věcem rozumět a chápat, jak fungují, jak často se mění apod. Jinak jste na tom stejně jako kolegové se strategií z bodu 1.
  3. Aktualizace dělat ručně.

Co všechno se updatuje (ve WP)

  • pluginy – záleží na vývojářích, jak jsou aktivní, akceptují chyby a návrhy na nové features od zákazníků a komunity,
  • šablony – ze začátku je oprav více, záleží na vývojářích, jak jsou aktivní, akceptují chyby a návrhy na nové features od zákazníků a komunity, později je šablona odladěná a ke změnám nedochází tak často (záleží na šabloně).
  • překlady – zpravidla přichází velmi záhy po nové verzi WP.
  • jádro WordPressu – cca jednou za několik měsíců,
  • PHP
    • Velice zřídka, zpravidla jednou za pár let. Aktuální info najdete zde: https://www.php.net/supported-versions.php
    • Aktualizace dělá váš hosting, vy jen musíte přepnout nastavení hostingu, aby běžel na vyšší verzi PHP. Slusný hosting na to má tlačítko a za pár minut je hotovo.
    • Web je poté třeba pořádně projít a otestovat. Pokud něco nefunguje, je třeba to opravit, případně nastavit o něco nižší PHP verzi. Nebo ji vrátit a požádat o řešení problému.

Proč mám aktualizace vypnuté

Osobně patřím mezi lidi, kteří vyznávají bod 3 – dělat aktualizace ručně a řízeně, protože mám celý proces pod kontrolou. Je to součást mé práce, že web, za který zodpovídám, běží a funguje, jak má.

A má strategie je následující:

  1. Mám vypnuté automatické aktualizace pro všechno.
  2. Pokud aktualizace něčeho vyjde, záleží na tom, jaké číslo se v aktualizaci změnilo (proto teorie a pohádka o sémantickém verzování výše).
    1. Pokud se mění 3. číslo, aktualizuji a neřeším (jedná se o opravuji). Pouze web zkontroluji pohledem (vím, jaký plugin/šablona se updatovala, tedy vím, kam se dívat).
    2. Pokud se mění 2. číslo, jsem trochu opatrnější a někdy dělám i zálohu (např. u šablony, WooCommerce pluginu a pod).
    3. Pokud se mění 1. číslo, tak dělám zálohu a všechny updaty ručně přímo na webu. Web prohlédnu, otestuji, co otestovat jde, abych si byla jistá, že vše funguje, jak má. A několik dní potom sleduji, zda se nevyskytl nějaký problém.
  3. To vše platí v případě pluginů, šablon, WP i překladů.
  4. Čím je web komplikovanější a čím více pluginů a dalších částí obsahuje, tím větší je pravděpodobnost, že se něco pokazí.

Je třeba si uvědomit, že se pohybujeme v ekosystému WP – obrovském a rozsáhlém světě, kde při 50 000+ pluginů není možné otestovat v každé verzi každý s každým. A proto je třeba se mít v různých situacích na pozoru.

Automatické aktualizace

Jak je zapnout

  • pro pluginy a šablony platí, že jsou automaticky vypnuté – můžete je zapnout v administraci,
  • pro jádro WP jsou nastavené updaty minor, tedy by k “velké” major aktualizaci dojít nemělo – ovšem dokumentace WP v tomto není úplně jednoznačná:
    • “Starting WordPress 5.6, the default value of WP_AUTO_UPDATE_CORE for new WordPress installations is true. For new website, the default value of WP_AUTO_UPDATE_CORE is minor.”
  • verze PHP závisí na nastavení hostingu, ale tam ji zpravidla nastavujete ručně, tedy se tam nic nemění.

Jak je zakázat

Jádro WordPress

Do souboru wp_config.php stačí přidat (jako jsme si to ukazovali u lokálně uložených fontů):

//disable automatic updates
define( 'AUTOMATIC_UPDATER_DISABLED', true );
//disable WordPress auto updates
define( 'WP_AUTO_UPDATE_CORE', false );

Šablony

Do souboru functions.php (ideálně v child theme):

add_filter( 'auto_update_theme', '__return_false');

Pluginy

Do souboru functions.php (ideálně v child theme):

add_filter( 'auto_update_plugin', '__return_false');

Překlady

Do souboru functions.php (ideálně v child theme):

add_filter( 'auto_update_translation', '__return_false' );

Toto a další najdete na stránce dokumentace WP.

Když je webů hodně?

A jak pracuji na správě webů, když je jich hodně (10+)? Přihlásit se do administrace, udělat zálohu, updaty, zkontrolovat web, vyřešit problémy… dělat tohle pro každý web zvlášť je od určitého okamžiku neudělatelné. Proto používám skvělého pomocníka: ManageWP.

ManageWP

Proč ho používám:

  • je zdarma (a má spoustu celkem levných placených funkcí),
  • díky napojení jste schopni na dálku updatovat pluginy napříč weby,
  • přehledný dashboard napříč weby i pluginy/šablonami/WP,
  • jsou k dispozici přehledné filtry,
  • weby se dají oštítkovat, abyste věděli, kde máte např. e-shop a pod,
  • umí generovat reporty, co se v daném časovém období updatovalo (důkazní materiál pro klienta),
  • a mnoho dalšího.
  • PS: Update PHP neudělá, ten se dělá na hostingu.

Za mě je to úžasný pomocník, který dělá správu webů přehlednější a rychlejší. Ale jako u všeho platí – je třeba rozumět tomu, co děláte a proč to děláte.

wp manage1
náhled manageWP – pluginy
wp manage2
náhled manageWP – weby

Zdroje

Jitka Klingenbergová

Jitka Klingenbergová

Absolventka ČVUT FIT oboru Informatika | Programátorka | Webová vývojářka, konzultantka a mentorka
tvorime@vyladeny-web.cz

Líbil se vám článek? Pošlete ho dál:

Pravidelná dávka užitečných tipů až do schránky