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

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://wplama.cz');
define('WP_SITEURL', 'https://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 multisite v Ná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.

Neuteklo vám něco?

Pokrok a WordPress na nikoho nečekají, tak nám tu raději nechte email, ať o nic nepřijdete!

Nespamujeme! Další informace naleznete v našich zásadách ochrany osobních údajů.

Správa WordPress webu

Nemusíte na to být sami. Pomůžeme vám s pravidelnou údržbou i novými vylepšeními.

Více informací

11 názorů na “Nastavení WordPressu, která možná neznáte”

  1. 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ů

    1. Martin H.

      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á.

  2. 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.

    1. Martin H.

      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.

  3. 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 );

  4. Zdeněk S.

    Ahoj,
    v poslední době mi naše instalace WP odmítá přijmout upload souborů .docx a hlásí bezpečnostní důvody. Nikde jsem v nastavení nenašel příčinu této změny. Zatím jsem to řešil konverzí do starého Word formátu .doc, který to bere bez protestů. Správce hostingu u providera se dušuje, že oni za to nemohou.
    Podle návodu z Internetu jsem umístil následující řádek:
    define(‚ALLOW_UNFILTERED_UPLOADS‘, true);
    do souboru wp-config.php
    Nic se ale nezměnilo. Co je potřeba k aktivaci změn v configu ?
    Díky.

    1. Ahoj,
      ta funkce co píšeš funguje pouze tehdy, když je uživatel přihlášen jako administrátor a zároveň má ve WordPressu povoleno nahrávání nebezpečných typů souborů — což je zakázáno od verze 4.7 na většině hostinzích, pokud není WordPress spuštěn v režimu debug / multisite / nebo s přepnutým filtrem přes plugin nebo funkce.

      Zkus to spíše přes vlastní funkci:

      function povolit_docx_upload($mime_types){
      $mime_types[‚docx‘] = ‚application/vnd.openxmlformats-officedocument.wordprocessingml.document‘;
      return $mime_types;
      }
      add_filter(‚upload_mimes‘, ‚povolit_docx_upload‘);

  5. Dobrý den,

    narazil jsem na problém s pluginem Kadence Blocks ve WordPressu. Při jakékoliv editaci stránky se mi načte jen bílá obrazovka a obsah editoru se vůbec nezobrazí.
    Zkoušel jsem už různé možnosti:

    vymazání cache ve WordPressu i v prohlížeči,

    zvýšení paměti PHP,

    hledání řešení na Googlu i pomocí AI nástrojů.

    Bohužel nic z toho nepomohlo a problém stále přetrvává. Když plugin deaktivuji, tak vše běží.
    Máte někdo podobnou zkušenost? Pokud se vám podařilo najít funkční řešení, budu moc rád za jakýkoliv tip nebo radu.

    Díky za feedback!

  6. Dobrý den,

    právě memory limit jsem nechal navýšit taky a ani to nepomohlo.

    Podle logu je chyba zde Přesně citujte hlášku: net::ERR_QUIC_PROTOCOL_ERROR
    Objevuje se v konzoli prohlížeče při pokusu o uložení stránky a souvisí s požadavkem na /wp-admin/post.php.
    Zkoušel jsem hledat fakt snad skoro všude a vůbec na nic jsem nepřišel, ale stejně mě to pořád štve, že nevím, jak to opravit.

Diskuze

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Nákupní košík
Přejít nahoru