V místním fóru se stále objevuje mnoho dotazů, které nějakým způsobem souvisí s tím, že uživatelé nekorektně upravují WordPress či jeho součásti (šablony, pluginy, lokalizace). Pokusím se stručně shrnout jednotlivé možnosti, jak při konkrétních úpravách postupovat.
Nikdy a za žádných okolností prosím neupravujte zdrojové soubory WordPressu, šablon, pluginů či lokalizací. Existují sice výjimečné situace, kdy to může být z nějakého důvodu nezbytné, ale naprostá většina uživatelů na ně nikdy nenarazí a nemusíte se o ně tedy vůbec zajímat. A jak to tedy dělat správně?
1) WordPress a pluginy
Pokud potřebujete změnit konkrétní funkci samotného WordPressu či nějakého používaného pluginu, tak je třeba použít příslušné API (anglicky), tedy dohledat dostupné akce a filtry a pomocí vlastní funkce ovlivnit jejich chování. Někdy stačí jednoduchá funkce na několik řádků a snadno dosáhnete potřebné změny, zatímco některé úpravy jsou zase velmi složité. Uživatelé velmi často dohledají nějakou ukázku třeba na internetu, ale už bohužel přesně nevědí, kam ji přesně vložit.
a) Speciální plugin
Patrně ideální cesta, protože budou veškeré úpravy soustředěny v rámci samostatného vlastního pluginu. V podstatě jde jen o vytvoření nového adresáře a jednoho .php
souboru ve wp-content/plugins
(manuál, anglicky). Ale pozor, každá sebemenší chyba může vést k dočasnému odstavení webu (objeví se Fatal error či bílá obrazovka smrti), dokud to zase neopravíte, případně celý plugin nesmažete.
b) Plugin Code Snippets
Pokud ale z nějakého důvodu nechcete manipulovat se soubory (a nerozumíte PHP) a prostě jen potřebujete někam rychle vložit právě nalezenou funkci, tak stačí použít plugin Code Snippets. Příslušnou funkci tam jednoduše doplníte, budete mít na jednom místě přehledně soustředěné všechny další funkce a ještě trochu snížíte riziko případné chyby v PHP syntaxi (plugin automaticky hlídá nejčastější chyby).
2) Šablony
a) Zobrazení a CSS
Pokud se zajímáte pouze o změnu vzhledu prostřednictvím kaskádových stylů (CSS), tak musíte zejména odolat nutkavému pokušení upravovat přímo soubor style.css
v adresáři s používanou šablonou, protože máme v nabídce několik dalších možností:
- Patrně ideální cestou je tvorba vlastní odvozené šablony (Child theme), kde budete mít pod jednou střechou nejen úpravy CSS, ale i případné další změny, které přímo souvisí se šablonou. Postup je podobný jako u vytvoření pluginu (manuál, anglicky), pokud nechcete manipulovat ručně se soubory, tak stačí použít nějaký automatický generátor odvozené šablony (např. plugin One-Click Child Theme). Některé složitější úpravy lze řešit pouze zprovozněním odvozené šablony, zejména pokud chcete měnit obsah celých souborů (např. zcela přesunout či odstranit některé zobrazené části webu). V rámci odvozené šablony totiž můžete zkopírovat původní soubor, upravit si ho k obrazu svému, nahrát ho do adresáře s odvozenou šablonou a vše by mělo bez problémů fungovat. Podobné úpravy ale také nejsou zcela bez rizika, zejména pokud dojde k nějaké důležitější aktualizaci šablony, která bude obsahovat zásadnější změny. Potom budete muset změněné soubory znovu zkontrolovat a případně upravit podle požadavků aktuální verze.
- Pokud i tento postup vypadá složitě, tak můžete použít nějaký vhodný plugin. Nejdříve ale prozkoumejte, zda nemá šablona nějakou možnost nastavení CSS přímo zabudovanou. Velmi často totiž nějaké speciální (nenápadně ukryté) nastavení objevíte, zejména u prémiových šablon (často nazýváno jako “Custom CSS”). Občas také můžete mít na webu nějaký plugin, který už podobné nastavení také obsahuje (např. Jetpack má funkci Custom CSS). Pokud ale nic podobného nenajdete, tak můžete použít např. plugin Simple Custom CSS a případné změny CSS ukládat s jeho pomocí. A ještě jednou připomínám, v žádném případě nezasahujte do původního souboru
style.css
, během další aktualizace šablony bude automaticky přepsán a o všechny provedené úpravy nenávratně přijdete.
b) Funkčnost šablony
Pokud si nevystačíte s úpravami CSS a nejde ani tak o samotné zobrazení, ale spíše funkčnost šablony, tak máte opět na výběr:
- Můžete použít výše uvedený postup pro tvorbu odvozené šablony a veškeré úpravy na základě WordPress API doplňovat do souboru
functions.php
v adresáři s odvozenou šablonou. Potom budou tyto změny aktivní pouze do chvíle, kdy bude aktivní tato šablona. A když šablonu v budoucnu změníte, tak se provedené úpravy přestanou načítat. - Nebo bude následovat jednoduchý postup z bodu 1b), kdy sice nemusíte vytvářet odvozenou šablonu, ale je třeba zase počítat s jinou nevýhodou, kdy po případné změně šablony zůstanou provedené úpravy na webu stále aktivní.
3) Lokalizace
Ať už mají plugin či šablona nějakou dostupnou českou lokalizaci (a jen ji chcete doplnit) nebo teprve začínáte překládat, tak to hlavně můžete udělat i pro všechny další uživatele. Lokalizace jsou buď automaticky distribuovány přes komunitní online aplikaci GlotPress (kde si můžete najít příslušný projekt a doplnit ho) nebo soubory s překlady spravuje ručně sám autor (potom mu musíte aktuální podobu překladu zaslat). Další podrobnosti o překladech pluginů a šablon naleznete zde. Pro lokalizaci bych doporučil používat program Poedit (stačí verze zdarma) nebo vynikající plugin Loco Translate. A jak správně ukládat lokalizační soubory?
- Pokud chcete v nějakém překladu (třeba i v samotném WordPressu) změnit jen několik drobností, tak stačí použít např. plugin Say what? a nemusíte vůbec řešit nějaké soubory a jejich správné ukládání.
- Často se stává, že uživatelé chtějí doplnit nějaký stávající překlad (nebo ho významně upravit), ale neuloží ho na správné místo a bohužel pak dojde k jeho přemazání. Nikdy neukládejte upravené lokalizační soubory do adresáře se šablonou či pluginem, i když tam najdete adresář s lákavý názvem
languages
. Podobný adresář většinou obsahuje soubory s názvem příslušného jazyka, tedy např.cs_CZ.po
acs_CZ.mo
. Pokud tam ale upravené soubory necháte (a nepošlete je autorovi, aby je aktualizoval přímo v šabloně), tak budou během příští aktualizace automaticky přemazány původní verzí. - Lokalizační soubory je vhodné ukládat do adresáře
wp-content/languages
, kde budou mít ale trochu jiný název obsahující název šablony či pluginu, tedy např.sablona-cs_CZ.po
asablona-cs_CZ.mo
. Ale pozor, i v tomto případě může dojít k jejich přemazání, a to v případě, že bude dokončen oficiální překlad prostřednictvím aplikace GlotPress. Je tedy vhodné hotovou češtinu do aplikace doplnit, aby byla tato verze oficiálně distribuována. - Pokud ale chcete mít jistotu, že o lokalizační soubory do budoucna nepřijdete, tak je musíte nahrát do nějakého vlastního adresáře (např.
wp-content/adresar
) a pomocí vlastní funkce (napojené na filtr override_load_textdomain) označit tento adresář pro načítání upravených překladů. Další možností je vypnout automatické aktualizace lokalizačních souborů (manuál, anglicky), čímž ale zase do budoucna přijdete o aktuální podobu překladu, pokud na ní pracuje ještě někdo jiný přímo v GlotPressu.
Každý způsob má své výhody a nevýhody a musíte je předem zvážit tak, aby co nejlépe odpovídaly konkrétním potřebám. Ke každému bodu bych chtěl postupně doplnit ještě podrobnější návod, ale zatím jsem stihl pouze tento stručný přehled. Pokud používáte nějaké další šikovné triky pro úpravy WordPressu či jeho součástí, tak se prosím neváhejte podělit. A nikdy už prosím neupravujte zdrojové soubory WordPressu, pluginů, šablony a lokalizací. NIKDY. Věřte, že se to vyplatí. A pokud tomu věřit nechcete, tak se pak alespoň nedivte :-)
Nejoblíbenější hosting pro WordPress WEDOS.cz
je mozne menit v sablone od Evanta texty – popis jednotlivych tlacidiel, boxov atd? Mam temu v anglictine a potrebujem si tam upravit nejake texty. Co mam robit? Kde hladat?
Dobry den, hledame vyvojare na upravu naseho WordPress webu.
Pro mě je jednodušší varianta použít právě nějaký ověřený a bezpečný plugin než provádět nějakou ruční úpravu šablony. Dá se velmi jednoduše poškodit :)) vím z vlastní zkušenosti :))