Konstanty ve wp-config.php

  Zdrojový kód

WordPress má jednu obrovskou výhodu. Můžete na něm mít rozsáhlý a náročný projekt, aniž byste potřebovali vědět cokoliv o programování v PHP, databázích anebo jen pouhé základy HTML či CSS. Tyto pojmy vám mohou být naprosto neznámé a přitom vás nijak neomezí v používání tohoto redakčního systému. Není se tak čemu divit, že více jak jedna pětina všech internetových stránek na světě jede na WordPress.

Na druhou stranu neměli jste někdy chuť nahlédnout pod kapotu?

wp-config.php

Soubor wp-config.php se nachází v adresáři s instalací WordPress obsahuje ty nejdůležitější údaje potřebné pro běh celého webu. Jsou v něm uložené například přístupové údaje k databázi, takže jeho ochrana je naprostou prioritou. Dále se přes něj dá ovlivnit chování celého redakčního systému. A právě to nás dnes bude zajímat.

Konstanty v PHP

WordPress je napsaný v PHP. Takže pokud si s ním chcete alespoň trochu pohrát musíte znát základy, což je naprostá nutnost.

Většina nastavení se ukládá do konstant. Fungují podobně jako proměnné, ovšem na rozdíl od nich se nemění. Takže je jednou nadefinujete a pak už s nimi můžete pracovat.

Pro ukládání hodnot do konstant se používá funguje define(). Má dva parametry. Název konstanty a její hodnotu. Pokud se pokusíte použít funkci define() na kontantu, která už má hodnotu jednou nastavenou, tak dojde k chybě. Tím se PHP brání před případným dvojitým definováním konstanty.

Jednoduchá ukázka:

define( 'DB_NAME', 'nazev_databaze' );

Konstantě DB_NAME jsme přiřadili hodnotu nazev_databaze. Jak se to hodí si hned ukážeme.

Úprava přístupu k databázi

Jak už bylo zmíněno ve wp-config.php se nachází například přístup k databázi. Tyto údaje se vytvoří při instalaci. Pokud instalujete WordPress manuálně, tak jste je museli ručně zadat. Automatické instalátory aplikací se postarají naprosto o všechno. Vytvoří na serveru samotnou databázi a pak je zapíší do tohoto souboru.

Pokud ale potřebujete změnit webhosting a z nějakého důvodu to nechcete udělat přes novou instalaci a následný import dat musíte vše udělat ručně.

Někdy může také dojít ke napadení webu, třeba v důsledku používání neaktualizovaného pluginu, a pak je třeba všechna hesla změnit. Ano i ta k databázi.

define( 'DB_NAME', 'nazev_databaze' );
define( 'DB_USER', 'uzivatel' );
define( 'DB_PASSWORD', 'heslo' );
define( 'DB_HOST', 'adresa_serveru' );

Takže tady vidíme, že se definují čtyři konstanty

  • DB_NAME – Název databáze ke které se připojujeme
  • DB_USER – Přihlašovací jméno (login) uživatele. Některé hostingy umožňují vytvořit více uživatelů a každého s jiným oprávněním.
  • DB_PASSWORD – Heslo k databázi. Zde je ideální nechat si nějaké velmi složité vygenerovat. Jen velice ojediněle s ním přijdete do kontaktu.
  • DB_HOST – Sem se zadává adresa serveru, kde je databáze. Většinou je to localhost, což je označení pro lokální server (běžící na stejném stroji). Nedivte se pokud zde bude třeba IP adresa anebo doména. V některých případech můžete narazit i na port. Například localhost:3307.

Je důležité dávat si pozor u jednotlivých hodnot na velká a malá písmena.

Zapnutí debugování

Debugování je označení pro proces, kdy se odstraňují chyby. Na to, abychom k tomu mohli přistoupit je musíme nejdříve vidět. Tvůrci WordPress do něj zobrazování chyb samozřejmě přidali jen se musí aktivovat. K tomu slouží konstanta. WP_DEBUG. Stačí jí aktivovat.

define( 'WP_DEBUG', true );

Když WordPress přestane fungovat objeví se takzvaná bílá obrazovka smrti. Prostě přestane fungovat a nevypíše se žádná chyba. Pokud zapnete debugování tak se chyba vypíše.

Profesionální vývojáři samozřejmě počítají, že se občas nějaká chybička vyskytne a nemusí být hned fatální. Například jen se někam něco nezapíše, ale návštěvníci to nepostřehnou. Ti si pak přidají do wp-config.php následující ještě dva řádky:

define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_DEBUG_LOG', true );
  • WP_DEBUG_DISPLAY – slouží k zákazu (false) vypisování chyb při zapnutém debugovacím módu
  • WP_DEBG_LOG – aktivuje (true) mód zápisu do log souboru

Takže výsledkem je, že debug mód je aktivní, nezobrazují se chyby na stránce, ale zapisují do souboru (ten najdete v hlavním adresáři). Vývojář si jej pak může stáhnout a sjednat nápravu.

Ještě jedno upozornění. Debugovací mód zpomaluje WordPress. Měl by sloužit pouze vývojářům, kteří hledají chyby.

Pár dalších zajímavostí

Existuje velké množství dalších konstant, které mohou upravit fungování celého WordPress. Některé z nich jsou celkem užtečné

  • WP_MEMORY_LIMIT – Jedna z nejdůležitějších věcí. Pokud vám váš web trochu „narostl“ může občas vyhazovat chyby, že mu dochází paměť. Pomocí této konstanty jí navýšíte. Zadává se jako XM. Kde X je počet megabajtů. Třeba 128M, mu umožní využívat 128 megabajtů. Pozor musí to samozřejmě být povolené na webhostingu.
  • AUTOSAVE_INTERVAL – Obtěžuje vás automatické ukládání anebo naopak byste byli rádi pokud by se právě vámi psaný článek ukládal průběžně při psaní častěji. Využijte tuto konstantu. Zadaná hodnota je pak ve vteřinách.
  • CONCATENATE_SCRIPTS – Tato konstanta s hodnotou false, vypne v administraci javascript. Používá se to většinou pokud zlobí u mobilních zařízení.
  • WP_ALLOW_REPAIR – Tohle je celkem zajímavá konstanta. Aktivuje (true) totiž opravu databázových tabulek, pokud jsou rozbité. Občas se stane (a nemělo by se), že se tabulka rozbije. Možností proč se to může stát je vícero. Nejčastěji se ale něco pokazilo na serveru s databází. Například byl neočekávaně vypnut. Poškozená tabulka pak celý redakční systém většinou zablokuje.
  • DISALLOW_FILE_EDIT – Po zapnutí této konstanty (true) dojde k zablokování editorů šablon a pluginů z administrace. Toto se používá, pokud je více administrátorů a vy nemáte zájem aby některý z nich se „hrabal“ ve zdrojovém kódu.

Kompletní seznam všech konstant najdete na oficiálních stránkách Editing wp-config.php.

Napiš komentář