WordPress návody

Nastavení WordPressu, která možná neznáte

Autor příspěvku Martin H.

Mnohokrát už jsme zde psali o různých nastaveních WordPressu pomocí souboru wp-config.php, ale zdaleka jsme nevyčerpali obrovské možnosti, které tento soubor nabízí. V tomto článku se podíváme na některá více i méně známá nastavení ukrytá v wp-config.php.

V základním instalačním balíčku WordPressu vlastně ani tento soubor není, balíček disponuje pouze vzorem s názvem wp-config-sample.php – jehož součástí je jen několik málo nejnutnějších voleb. Tento vzor je následně možné použít pro tvorbu hlavního konfiguračního souboru pouhým přejmenováním na wp-config.php a doplněním správných údajů (databáze, bezpečnostní klíče apod.). Ovšem většina uživatelů tento manuální krok nepodstoupí a využije raději schopností instalačního programu WordPressu, který za ně konfigurační soubor vytvoří automaticky.

Při instalaci WordPressu musíte vyplnit některé základní údaje nutné k běhu vašeho webu (pokud nevytvoříte wp-config.php manuálně). Především se jedná o nastavení přístupů k databázi:

define('DB_NAME', 'database-name');
define('DB_USER', 'database-username');
define('DB_PASSWORD', 'database-password');
define('DB_HOST', 'localhost');

Pozor byste si měli dát hlavně na parametr DB_HOST, který si obvykle vystačí s hodnotou localhost, ale v některých případech tomu tak být nemusí (například Wedos nemá databázové servery na localhostu). Pokud vám localhost nefunguje a vy nevíte, na jakém serveru je umístěna vaše databáze, zkuste editovat soubor wp-config.php a namísto localhost vložte následující:

define('DB_HOST', $_ENV{DATABASE_SERVER});

S velkou pravděpodobností si WordPress najde databázový server sám díky této globální proměnné.

Při instalaci si také volíte prefix databáze. V základu nabývá hodnoty “wp_”, kterou doporučuji změnit na cokoliv jiného, například “wp48576_” apod. Tento jednoduchý krok alespoň o něco ztíží práci hackerům, kteří tak nebudou znát názvy tabulek v databázi.

Bezpečnostní klíče

Jedná se o soustavu náhodných řetězců, které velmi pomáhají se zabezpečením celé instalace WordPressu a neměli byste je opomíjet. O bezpečnostních klíčích jsme podrobně psali v článku “Jak nastavit bezpečnostní klíče WordPressu a k čemu slouží”.

Nastavení jazyka

Wp-config.php obsahuje v základu také řádek s nastavením jazykové mutace:

define('WPLANG', 'cs_CZ');
define('WP_LANG_DIR', dirname(__FILE__) . 'wordpress/languages');

– kód pro český jazyk je cs_CZ
– pomocí WP_LANG_DIR můžete nastavit jiný adresář s jazykovými soubory

Jazykový soubor .mo WordPress hledá nejprve v adresáři wp-content/languages a následně v wp-includes/languages. Oficiální podporu českého jazyka najdete na http://cs.wordpress.org/.

Debuggování WordPressu

WordPress nabízí velmi dobrou funkcionalitu pro debuggování různých pluginů, šablon a samotného WordPressu určenou samozřejmě především developerům. Pokud vyvíjíte cokoliv na WordPress platformě, zapněte si debuggovací mód přidáním následující řádky do wp-config.php:

define(‘WP_DEBUG’, true);

Více v článku: Jak u WordPressu zapnout zobrazení chyb (WP_DEBUG)

Adresa webu

V samotné administraci WordPressu nastavujete adresu vašeho webu – tato informace se poté uloží do databáze a pokaždé, když ji nějaká funkce potřebuje, tak se spouští MySQL dotaz. Ve verzi WordPressu 2.2 vývojáři přidali následující možnosti nastavení adresy v souboru wp-config.php:

define('WP_HOME', 'https://www.wplama.cz');
define('WP_SITEURL', 'https://www.wplama.cz');

Přidáním těchto řádků do konfiguračního souboru zredukujete počet dotazů do databáze, což v některých případech může pomoci s rychlostí načítání stránek.

Revize článků

V posledních verzích WordPressu existují tzv. revize příspěvků. Tato funkce automaticky ukládá články pro případ, kdy by došlo například k náhodnému pádu prohlížeče apod. Také umožňuje pisateli vrátit předchozí verzi příspěvku, v případě, že poslední změny nedosahují uspokojivé kvality. I revize příspěvků mají svá nastavení v konfiguračním souboru.

Nastavení automatického ukládání příspěvků

V základním nastavení WordPress ukládá rozepsané příspěvky každých 60 sekund. Pokud vám to z jakéhokoliv důvodu nevyhovuje, můžete čas ukádání snadno změnit pomocí:

define('AUTOSAVE_INTERVAL', 120); // v sekundách

Počet revizí

Některé příspěvky dosahují desítek nebo i stovek revizí, pokud se vám zdá, že tato funkce pouze dělá nepořádek v databázi, lze omezit počet revizí:

define('WP_POST_REVISIONS', 5); //použijte jakékoliv celé číslo

Deaktivace revizí

Jestliže vás funkce revizí akorát obtěžuje, můžete ji zcela vypnout:

define('WP_POST_REVISIONS', false);

Koš příspěvků

Od WordPressu 2.9 je součástí jádra funkce koše, který funguje úplně stejně jako klasický koš v operačním systému Windows (a jiných). Funkce je užitečná pro všechny, kterým se občas stane, že se ukliknou a poslali by tak svůj rozepsaný článek do věčných lovišť. Nevýhodou je, že musíte koš pravidelně vyprazdňovat, aby nedocházelo ke zbytečnému zaneřádění databáze. Mazání koše probíhá v základním nastavení automaticky každých 30 dnů. Chcete-li tento interval změnit, je to velmi jednoduché:

define('EMPTY_TRASH_DAYS', 7 ); //číslem nastavte počet dnů

Pokud se vám koš nelíbí vůbec, můžete ho deaktivovat:

define('EMPTY_TRASH_DAYS', 0 );

Pamatujte ale, že při nastavení 0 dnů se vás WordPress nezeptá na potvrzení při kliknutí na tlačítko Smazat, takže každý klik může způsobit nemalé rozčarování.

Konstanty pro FTP/SSH

WordPress je schopný automaticky instalovat pluginy, šablony a aktualizace přímo z prostředí administrace. Některé hostingy ale vyžadují pro tuto funkci využít FTP nebo dokonce SSH přístup. Následující konstanty nastaví tyto údaje:

// vynutí některou z metod pro manupulaci se soubory: "direct", "ssh", "ftpext" nebo "ftpsockets"
define('FS_METHOD', 'ftpext');
// absolutní cesta ke kořenovému adresáři instalace
define('FTP_BASE', '/path/to/wordpress/');
// absolutní cesta k adresáři "wp-content"
define('FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/');
// absolutní cesta k adresáři "wp-plugins"
define('FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/');
// absolutní cesta k vašemu veřejnému SSH klíči
define('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub');
// absolutní cesta k vašemu soukromému SSH klíči
define('FTP_PRIVKEY', '/home/username/.ssh/id_rsa');
// buď FTP nebo SSH uživatelské jméno
define('FTP_USER', 'username');
// heslo pro FTP_USER uživatele
define('FTP_PASS', 'password');
// kombinace doména:port pro váš SSH nebo FTP server
define('FTP_HOST', 'ftp.server.cz:21');

Automatická optimalizace databáze

Ačkoliv existují různé pluginy pro optimalizaci a opravy databáze WordPressu, od verze 2.9 nabízí tuto funkci samotné jádro WordPressu. Aktivace probíhá následovně:

define('WP_ALLOW_REPAIR', true);

Jakmile řádek přidáte, funkci můžete použít na adrese http://www.yoursite.com/wp-admin/maint/repair.php

Pro využití automatických oprav databáze nemusíte být přihlášeni (při poškození databáze to ani často nelze), takže nezapomeňte ihned po dokončení oprav řádek z konfiguračního souboru zase odstranit.

Nastavení limitu paměti

Při používání WordPressu čas od času dojde k přečerpání povolené paměti pro php skripty (obvykle kvůli pluginu). Limit paměti lze změnit buďto přímo v nastavení hostingu nebo i pomocí souboru wp-config.php přídáním následující řádky:

define('WP_MEMORY_LIMIT', '64M'); // paměť nastavte podle požadavků

Toto nastavení ovšem v případě některých hostingů (v ČR řekl bych u většiny) nemusí fungovat. Takže pokud nemáte vlastní server nebo alespoň VPS, budete muset požádat svého poskytovatele hostingu o navýšení limitu.

Logování chyb WordPressu

Může být užitečné logovat chyby webu na WordPressu. Pomocí wp-config.php si můžete vytvořit jednoduchý log. Nejprve vytvořte na serveru soubor s názvem php_error.log a povolte serveru do něj zapisovat. Na cestě k souboru tolik nezáleží, tu nastavíte v následujícím kódu:

@ini_set('log_errors','On');
@ini_set('display_errors','Off');
@ini_set('error_log','/home/path/domain/logs/php_error.log');

Přesun adresáře wp-content

Od WordPressu verze 2.6 lze přesunout adresář wp-content podle uvážení. Tímto krokem trochu podpoříte zabezpečení webu. Po přesunu adresáře nadefinujte jeho novou cestu v konfiguračním souboru (wp-config.php):

define( 'WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/blog/wp-content' );
define( 'WP_CONTENT_URL', 'http://example/blog/wp-content');
define( 'WP_PLUGIN_DIR', $_SERVER['DOCUMENT_ROOT'] . '/blog/wp-content/plugins' );
define( 'WP_PLUGIN_URL', 'http://example/blog/wp-content/plugins');

Raději jsme uvedli i nadefinování cesty pro adresář s pluginy, protože některé pluginy by mohly mít problém s vyhledáním cesty.

Aktivace multi-site sítě

WordPress 3.0 zahrnul do svého jádra funkci multisite (více webů na jedné instalaci WordPressu). Pro aktivace vložte do wp-config.php následující:

define('WP_ALLOW_MULTISITE', true);

Jakmile tak učiníte, uvidíte v administraci nová nastavení pro multisiteNástrojích. Budete muset postupovat podle instrukcí v administraci, abyste dokončili celé nastavení pro multisite.

Deaktivace editoru šablon a pluginů

WordPress v základním nastavení umožňuje přímo v administraci editovat zdrojové kódy šablon a pluginů. V některých případech ale může být vhodné tuto funkci vypnout, například, pokud se vám v administraci šťourá nezkušený klient apod. Editor deaktivujete přidáním následujícího kódu do wp-config.php:

define( 'DISALLOW_FILE_EDIT', true );

Zabezpečení souboru wp-config.php

Jak vidíte, konfigurační soubor je extrémně důležitý a zaslouží si zvýšené zabezpečení. V základním nastavení je umístěný v hlavní složce WordPressu, můžete ho ale přesunout mimo veřejnou složku s webovými daty, aby se k němu nedostal nikdo z venku. Pokud WordPress nenajde konfigurační soubor ve své hlavní složce, měl by ho automaticky lokalizovat i v jiných složkách.

Doporučuji také omezit přístup do souboru pomocí .htaccess:

# zabezpečení wp-config.php
<Files wp-config.php>
order allow,deny
deny from all
</Files>

Pro ještě více možností nastavení WordPressu můžete navštívit stránku kodexu, která se zabývá editací wp-configu na http://codex.wordpress.org/Editing_wp-config.php.

Pokud se vám článek líbil, budeme rádi, když ho nasdílíte na sociálních sítích, děkujeme.

O autorovi

Martin H.

Hobby programátor, IT nadšenec a nepoučitelný kritik.

6 komentářů

  • Pěkný článek, změnu adresáře /wp-content/ na jednom webu používám, s pár pluginy byl ale problém, nepobrali to změnu.
    Pak bych ještě uvedl vypnutí editoru šablon a pluginů

    • Děkujeme za pochvalu. Co se týče těch pluginů při změně, u některých může opravdu nastat problém, většinou se ale vyřeší právě nadefinováním cesty k pluginům pomocí:

      define( ‘WP_PLUGIN_DIR’, $_SERVER[‘DOCUMENT_ROOT’] . ‘/blog/wp-content/plugins’ );
      define( ‘WP_PLUGIN_URL’, ‘http://example/blog/wp-content/plugins’);

      Deaktivaci editoru doplním do článku, díky za tip. Nastavení přes wp-config.php jsou opravdu bohatá a s každou verzí WordPressu přibývají nová.

  • Docela by mě zajímalo, kde jste vyhrabali LANGDIR? To jsem používal asi před deseti lety a myslím, že už je dávno nefunkční a nikde se o ní nepíše 🙂 Nová verze je tuším WP_LANG_DIR.

    • Ahoj, díky za info, funkci jsem v článku upravil. Bohužel se LANGDIR ještě někde objeví, dokonce i na některých stránkách kodexu. Sám jsem ještě funkci nepoužíval.

  • Ahoj,
    pěkné shrnutí. Ještě bych rád doplnil nastavení, které zabrání přidání defaultního vzhledu při vydání s novou verzí WordPressu:

    define( ‘CORE_UPGRADE_SKIP_NEW_BUNDLED’, true );

Zanechat komentář

Aktuální školení: Tvorba webu s Divi šablonou pro začátečníky (Praha 30.1.2020).

Získejte více informací o WordPress!

Připojte se do našeho emailového seznamu a nenechte si ujít informace, novinky a návody ze světa WordPressu.

Úspěšně jste se zapsali do našeho newsletteru. Děkujeme!

Tomáš Cirkl

Tomáš Cirkl

WordPress specialista

Blog WPlama.cz píši už více než 5 let. O WordPress přednáším a pořádám školení. Pro své klienty vytvářím a spravuji webové stránky.