WordPress konstanty: „teměř“ kompletní průvodce pro vývojáře

Jako WordPress vývojář se často setkáváte s potřebou konfigurace a optimalizace vašich projektů. Jedním z nejvýkonnějších nástrojů, které máme k dispozici, jsou WordPress konstanty. Pojďme se podívat na jejich využití, výhody i potenciální rizika.
Jak byl napsán tento článek:
Obsah článku

I já, jako vývojář s dlouhou praxí musím říct, že méně je někdy více. Není třeba implementovat všechny možné konstanty jen proto, že existují. Důležité je pochopit potřeby projektu a podle toho volit správná nastavení. Zároveň je dobré myslet na budoucí dramatickou údržbu a rozvoj projektu – příliš komplexní konfigurace může být v dlouhodobém horizontu spíše na škodu, zvlášť bez komentářů nebo technické dokumentace🖕

Proč používat konstanty?

WordPress konstanty představují základní stavební kámen konfigurace každé WordPress instalace. Jejich hlavní síla spočívá v centralizované správě nastavení. Představte si, že máte několik vývojových prostředí – local, staging a production. Díky konstantám můžete snadno spravovat různá nastavení pro každé z nich, aniž byste museli zasahovat do kódu.

Hlavní výhody konstant

Bezpečnost je jedním z hlavních důvodů, proč vývojáři sahají po konstantách. Umožňují bezpečné uložení citlivých údajů mimo veřejně přístupné složky. Navíc poskytují robustní kontrolu nad přístupy a oprávněními.

Výkon je další oblast, kde konstanty excelují. Můžete jemně ladit cache, optimalizovat využití systémových zdrojů a vypínat nepotřebné funkce. To vše vede k rychlejšímu a efektivnějšímu webu.

Skrytá nebezpečí

Ačkoliv jsou konstanty mocným nástrojem, přicházejí i s určitými riziky. Největším z nich je paradoxně přeoptimalizace. Příliš mnoho konstant může vést k nepřehlednému kódu a zbytečné komplexitě. Jak říkáme v našem týmu: „Každá konstanta by měla mít svůj účel.“

Praktické problémy s konstanty

Údržba rozsáhlé konfigurace může být náročná. Konstanty vyžadují pravidelnou aktualizaci a mohou způsobovat konflikty při aktualizacích WordPressu. Proto je klíčová důkladná dokumentace.

Doporučení pro implementaci

Pro malé projekty

Začněte s minimem nutných konstant. Typicky potřebujete pouze základní nastavení databáze, debugování a paměťové limity. Například:

define('WP_MEMORY_LIMIT', '512M');
PHP

Pro střední projekty

Se zvětšujícím se projektem přidejte cache konstanty a možná i podporu pro multisite. Zaměřte se také na monitoring a logování.

Pro enterprise řešení 🐦‍🔥

Velké projekty mohou těžit z pokročilých konstant pro mikroservisy, A/B testování a škálování. Zde je důležité najít správnou rovnováhu mezi funkcionalitou a udržitelností.

Dokumentace a komentáře⚡️

Dokumentujte a pište komentáře!

// Důležité! Ovlivňuje celkový výkon webu
define('WP_CACHE', true);  

/* 
 * Nastavení limitů paměti
 * @since 1.5.1
 * @affects admin-ajax.php, upload.php
 */
define('WP_MEMORY_LIMIT', '1G');
PHP

Verzování a prostředí🪇

// Nastavení pro různá prostředí
if (ENVIRONMENT === 'development') {
    define('WP_DEBUG', true);
    define('SCRIPT_DEBUG', true);
} else {
    define('WP_DEBUG', false);
    define('DISALLOW_FILE_EDIT', true);
}
PHP

Best Practices🛞

  1. Dokumentujte vše
    • Každá konstanta by měla mít jasný účel
    • Udržujte přehled použitých konstant
    • Pravidelně aktualizujte dokumentaci
  2. Testujte dopady těchto konstant
    • Měřte vliv konstant na výkon
    • Provádějte testy na různých prostředích
    • Sledujte potenciální konflikty s pluginy
  3. Zachovejte si pragmatický přístup
    • Implementujte pouze skutečně potřebné funkce
    • Pravidelně revidujte použité konstanty
    • Reagujte na reálné potřeby projektu

Hierarchie důležitosti🍋‍🟩

  • Nejdříve základní nastavení (databáze, cache, bezpečnost)
  • Pak výkonnostní optimalizace
  • Nakonec specializované funkce

Ne úplné kompletní seznam konstant pro wp-config.php

// Databázové připojení
define('DB_NAME', 'nazev_databaze');
define('DB_USER', 'uzivatel');
define('DB_PASSWORD', 'heslo'); // Volte ideálně 16+ znáků s čísly a pismený (příklad: SNK#!Kq8Rw4UmG&n)
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
$table_prefix = 'wp_'; // Individuální volba. wp_ je výchozí hodnota, standardní.

// Správa revizí a automatického ukládání
define('WP_POST_REVISIONS', false);  // Vypnutí revizí
define('AUTOSAVE_INTERVAL', 180);    // Interval autosave v sekundách

// Paměť a výkon
define('WP_MEMORY_LIMIT', '512M');
define('WP_MAX_MEMORY_LIMIT', '1G');
define('WP_CACHE', true);            // Povolení cache

define('WP_SQLITE_OBJECT_CACHE_TIMEOUT', 15000); // Nastavuje timeout pro SQLite objektovou cache v milisekundách (15 sekund)

// FTP přístup
define('FS_METHOD', 'direct');       // Metoda souborového systému
define('FTP_BASE', '/path/to/wordpress');
define('FTP_CONTENT_DIR', '/path/to/wp-content');
define('FTP_PLUGIN_DIR', '/path/to/plugins');
define('FTP_USER', 'username');      // FTP uživatel
define('FTP_PASS', 'password');      // FTP heslo
define('FTP_HOST', 'ftp.example.com'); // FTP host
define('FTP_SSL', false);            // FTP SSL
define('FTP_SSH', true);             // Aktivace SSH spojení
define('FTP_PRIKEY', '/path/to/private.key'); // SSH privátní klíč
define('FTP_PUBKEY', '/path/to/public.key');  // SSH veřejný klíč
define('FTP_LANG_DIR', '/path/to/langs');     // Vlastní cesta pro jazyky

// Debugging a logování
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
define('SCRIPT_DEBUG', false);       // Debug skriptů
define('SAVEQUERIES', false);        // Ukládání SQL dotazů
define('WP_DISABLE_FATAL_ERROR_HANDLER', true); // Vypne handler fatálních chyb
define('WP_START_TIMESTAMP', microtime(true)); // Časová značka startu
define('WP_DEBUG_DISPLAY_CALLBACK', null);    // Vlastní callback pro zobrazení chyb

// Alternativa debuggingu a logování
define('WP_DEBUG', true); // Zapne režim ladění ve WordPressu
if (WP_DEBUG) {
    @error_reporting(E_ALL); // Povolit hlášení všech PHP chyb a varování
    @ini_set('log_errors', false); // Zakázat logování chyb do souboru
    @ini_set('log_errors_max_len', '0'); // Zakázat omezení délky logovaných chyb
    define('WP_DEBUG_LOG', false); // Zakázat ukládání debug logů do wp-content/debug.log
    define('WP_DEBUG_DISPLAY', false); // Zakázat zobrazování PHP chyb přímo na stránce
    define('CONCATENATE_SCRIPTS', false); // Zakáže spojování JavaScript souborů (užitečné pro debugování)
    define('SAVEQUERIES', false); // Zakáže ukládání SQL dotazů do paměti pro ladění výkonu
}

// Bezpečnostní nastavení
define('DISALLOW_FILE_EDIT', true);  // Zákaz editace souborů
define('DISALLOW_FILE_MODS', true);  // Zákaz modifikace souborů
define('FORCE_SSL_ADMIN', true);     // Vynutit SSL pro admin
define('FORCE_SSL_LOGIN', true);     // Vynutit SSL pro přihlášení

//Authentication Unique Keys and Salt = SALT KEYS, lze generovát nové na https://api.wordpress.org/secret-key/1.1/salt/
define('AUTH_KEY', 'unikátní fráze');
define('SECURE_AUTH_KEY', 'unikátní fráze');
define('LOGGED_IN_KEY', 'unikátní fráze');
define('NONCE_KEY', 'unikátní fráze');
define('AUTH_SALT', 'unikátní fráze');
define('SECURE_AUTH_SALT', 'unikátní fráze');
define('LOGGED_IN_SALT', 'unikátní fráze');
define('NONCE_SALT', 'unikátní fráze');

// Multisite konstanty
define('WP_ALLOW_MULTISITE', true);  // Povolení multisite
define('MULTISITE', true);           // Aktivace multisite
define('SUBDOMAIN_INSTALL', true);   // Instalace na subdoménách
define('DOMAIN_CURRENT_SITE', 'example.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

// Aktualizace a údržba
define('WP_AUTO_UPDATE_CORE', false); // Automatické aktualizace jádra
define('AUTOMATIC_UPDATER_DISABLED', true); // Vypnutí automatických aktualizací
define('EMPTY_TRASH_DAYS', 7);       // Doba uchování v koši
define('MEDIA_TRASH', true);         // Koš pro média

// URL a cesty
define('WP_HOME', 'https://example.com');    // URL webu
define('WP_SITEURL', 'https://example.com'); // URL WordPressu
define('WP_CONTENT_DIR', '/path/to/wp-content'); // Cesta k wp-content
define('WP_CONTENT_URL', 'https://example.com/wp-content'); // URL wp-content
define('UPLOADS', 'uploads');        // Vlastní cesta pro nahrávání

// Optimalizace a výkon
define('CONCATENATE_SCRIPTS', false); // Spojování skriptů
define('COMPRESS_SCRIPTS', false);    // Komprese JavaScriptu
define('COMPRESS_CSS', false);        // Komprese CSS
define('ENFORCE_GZIP', true);         // Vynutí GZIP kompresi

define('DISABLE_WP_CRON', true);      // Vypnutí WP cronu

// REDIS - individuální nastavení pro server
define('WP_REDIS_HOST', '10.0.0.1'); // IP adresa nebo hostname Redis serveru
define('WP_REDIS_PASSWORD', 'pHvc42PmFi'); // Heslo pro připojení k Redis (pokud je vyžadováno)
define('WP_REDIS_PORT', 6497); // Port, na kterém Redis běží (výchozí je 6379)
define('WP_CACHE_KEY_SALT', 'mujweb'); // Unikátní klíčový prefix pro cache – umožňuje odlišit cache mezi více WordPress instalacemi na stejném Redis serveru
define('WP_REDIS_TIMEOUT', 1); // DEFAULT Maximální doba (v sekundách) pro připojení k Redis serveru
define('WP_REDIS_READ_TIMEOUT', 1); // DEFAULT Maximální doba (v sekundách) pro čekání na odpověď od Redis serveru 
define('WP_REDIS_MAXTTL', 300); // Platnost cache v Redis v sekundách (300s = 5 minut) - (TTL – Time To Live). Pro Woo ideální cca 100 az 150
define('WP_REDIS_DATABASE', 1); // Redis podporuje více databází, zde je nastavena DB s indexem 1 / (číslováno 0–15)  

// API a externí služby
define('XMLRPC_REQUEST', false);      // Vypne XML-RPC
define('WP_HTTP_BLOCK_EXTERNAL', true); // Blokuje externí HTTP požadavky
define('WP_ACCESSIBLE_HOSTS', 'api.wordpress.org'); // Povolené externí domény

// Cookie nastavení
define('COOKIE_DOMAIN', '.example.com');     // Doména pro cookies
define('COOKIEPATH', '/');                   // Cesta pro cookies
define('SITECOOKIEPATH', '/');               // Cesta pro cookies celého webu
define('ADMIN_COOKIE_PATH', '/wp-admin');    // Cesta pro admin cookies
define('TEST_COOKIE', 'test_cookie');        // Název testovacího cookie

// Email nastavení
define('SMTP_HOST', 'smtp.example.com');     // SMTP server
define('SMTP_PORT', 587);                    // SMTP port
define('SMTP_USER', 'user@example.com');     // SMTP uživatel
define('SMTP_PASS', 'heslo');                // SMTP heslo
define('WPMS_ON', true);                     // Povolení SMTP
define('WPMS_SMTP_HOST', 'smtp.gmail.com');  // SMTP host
define('WPMS_SSL', 'ssl');                   // Typ šifrování
define('WPMS_SMTP_PORT', 465);               // SMTP port

// Oprávnění
define('FS_CHMOD_FILE', 0644);               // Oprávnění pro soubory
define('FS_CHMOD_DIR', 0755);                // Oprávnění pro adresáře

// Další konstanty
define('WPLANG', 'cs_CZ');                   // Nastavení jazyka
define('WP_LANG_DIR', '/path/to/languages'); // Vlastní cesta k překladům
define('ALLOW_UNFILTERED_UPLOADS', true);    // Povolí nahrávání všech typů souborů
define('IMAGE_EDIT_OVERWRITE', true);        // Přepíše původní obrázky při úpravách
define('WP_ALLOW_REPAIR', true);             // Povolí opravu databáze
define('DO_NOT_UPGRADE_GLOBAL_TABLES', true);// Zakáže upgrade globálních tabulek
define('WP_IMPORTING', true);                // Optimalizace pro import dat

// Omezení počtu pokusů o přihlášení
define('WP_LOGIN_ATTEMPTS', 3);              // Maximální počet pokusů o přihlášení

// Vypnutí editace souborů přímo v administraci pro konkrétní typy
define('DISALLOW_FILE_EDIT_PLUGINS', true);  // Zákaz editace pluginů
define('DISALLOW_FILE_EDIT_THEMES', true);   // Zákaz editace témat

// Optimalizace výkonu
define('WP_CACHE_TIME', 3600);               // Doba cachování v sekundách
define('COMPRESS_IMAGES', true);             // Automatická komprese nahrávaných obrázků
define('WP_OPTIMIZE_IMAGES', true);          // Optimalizace obrázků při nahrávání

// Zabezpečení administrace
define('CUSTOM_ADMIN_URL', 'moje-admin');    // Vlastní URL pro admin
define('ADMIN_IP_WHITELIST', '127.0.0.0'); // IP adresy s povoleným přístupem do adminu
define('WP_ADMIN_DIR', 'panel');             // Přejmenování wp-admin adresáře

// Výkon databáze
define('DB_MAX_CONNECTIONS', 100);           // Maximální počet DB připojení
define('DB_CHARSET_COLLATE', 'utf8mb4_czech_ci'); // Specifická znaková sada a porovnávání
define('DB_BACKUP_PATH', '/path/to/backup'); // Cesta pro zálohy databáze

// Rozšířené ladění
define('WP_PROFILE', true);                  // Profilování výkonu
define('DEBUG_INFORMATION_LEVEL', 3);        // Úroveň debugovacích informací (1-3)
define('LOG_DEPRECATED_NOTICES', true);      // Logování zastaralých funkcí

// API omezení
define('REST_API_ALLOWED_IPS', '127.0.0.0'); // Povolené IP pro REST API
define('API_REQUEST_LIMIT', 1000);           // Limit API požadavků za hodinu

// Správa sessions
define('WP_SESSION_TIMEOUT', 3600);          // Timeout pro session (v sekundách)
define('SESSION_COOKIE_SECURE', true);       // Secure flag pro session cookie

// Ochrana proti spamu
define('COMMENT_FLOOD_FILTER', true);        // Filtr proti spam komentářům
define('COMMENT_MODERATION_KEYS', 'spam,sex,viagra'); // Klíčová slova pro moderaci

// CDN integrace
define('CDN_ENABLED', true);                 // Povolení CDN
define('CDN_URL', 'https://cdn.example.com'); // URL CDN serveru
define('CDN_INCLUDES', 'js,css,images');     // Typy souborů pro CDN

// Multijazyčnost
define('WP_DEFAULT_LOCALE', 'cs_CZ');        // Výchozí lokalizace
define('TRANSLATION_API_KEY', 'your-key');   // API klíč pro překlady

// Výkon front-endu
define('DEFER_SCRIPTS', true);               // Odložené načítání skriptů
define('PRELOAD_RESOURCES', true);           // Přednačítání důležitých zdrojů
define('LAZY_LOAD_IMAGES', true);            // Lazy loading obrázků

// Monitoring a analýza
define('PERFORMANCE_MONITORING', true);       // Sledování výkonu
define('ERROR_REPORTING_EMAIL', 'admin@example.com'); // Email pro chybová hlášení
define('ACTIVITY_LOG_DAYS', 30);             // Doba uchování logu aktivit

// Limity a omezení
define('WP_MAX_UPLOAD_SIZE', '64M');         // Maximální velikost nahrávaného souboru
define('PHP_MEMORY_MIN', '64M');             // Minimální paměť pro PHP
define('MAX_EXECUTION_TIME', 300);           // Maximální čas vykonávání skriptu
define('CORE_UPGRADE_SKIP_NEW_BUNDLED', true); // Přeskočit instalaci bundled témat/pluginů

// Zabezpečení a přístup
define('CUSTOM_USER_TABLE', 'my_users');     // Vlastní tabulka uživatelů
define('CUSTOM_USER_META_TABLE', 'my_usermeta'); // Vlastní tabulka user meta
define('WP_ADMIN_HTTPS_VERIFICATION', true); // Ověření HTTPS pro admin
define('BLOCK_EXTERNAL_WARNINGS', true);     // Blokování externích varování
define('DISABLE_WP_API', true);              // Vypnutí WP API

// Cache a optimalizace
define('WP_CACHE_TIMEOUT', 3600);            // Timeout pro cache
define('DB_CACHE', true);                    // Povolení DB cache
define('ENABLE_PAGE_CACHE', true);           // Povolení cache stránek
define('CACHE_EXPIRATION_TIME', 86400);      // Doba expirace cache
define('MEMCACHED_SERVERS', 'localhost:11211'); // Memcached servery

// Multisite a síťové nastavení
define('UPLOADBLOGSDIR', 'sites');           // Adresář pro multisite uploady
define('BLOG_UPLOAD_SPACE', 100);            // Limit uploadu pro blog (MB)
define('UPLOAD_SPACE_CHECK_DISABLED', true); // Vypnutí kontroly místa
define('MS_FILES_REWRITING', true);          // Přepisování URL pro multisite

// Vývojářské nástroje
define('WPMU_PLUGIN_DIR', WP_CONTENT_DIR . '/mu-plugins'); // Must-use pluginy
define('WP_LOCAL_DEV', true);                // Indikátor lokalního vývoje
define('WP_ENVIRONMENT_TYPE', 'development'); // Typ prostředí
define('WP_DEVELOPMENT_MODE', true);         // Vývojářský mód

// Media a upload
define('MEDIA_UPLOAD_PATH', '/custom/path'); // Vlastní cesta pro média
define('IMAGE_MEMORY_LIMIT', '256M');        // Limit paměti pro práci s obrázky
define('IMAGETYPE_ALLOWED', 'jpg,jpeg,png,gif,webp'); // Povolené typy obrázků
define('BACKGROUND_SAVE_IMAGES', true);      // Asynchronní ukládání obrázků

// Emaily a notifikace
define('WP_MAIL_INTERVAL', 300);             // Interval odesílání emailů
define('EMAIL_DELIVERY_METHOD', 'smtp');     // Metoda doručování emailů
define('NOTIFICATION_RECIPIENTS', 'admin@example.com'); // Příjemci notifikací
define('DISABLE_WP_MAIL', true);             // Vypnutí WP mailu

// Rozšířené nastavení databáze
define('DB_PERSISTENT', true);               // Persistentní DB připojení
define('DB_SSL', true);                      // SSL pro DB připojení
define('DB_SSL_KEY', '/path/to/key');        // SSL klíč pro DB
define('DB_SSL_CERT', '/path/to/cert');      // SSL certifikát pro DB

// Vlastní adresáře a cesty
define('WP_PLUGIN_DIR_CUSTOM', '/custom/plugins'); // Vlastní adresář pluginů
define('WP_THEME_DIR_CUSTOM', '/custom/themes');   // Vlastní adresář témat
define('CUSTOM_CONTENT_DIRECTORY', 'assets');      // Vlastní content adresář

// Automatizace a cron
define('WP_CRON_AUTH_KEY', 'unikatni-klic'); // Klíč pro CRON úlohy
define('ALTERNATE_WP_CRON_INTERVAL', 300);    // Interval alternativního cronu
define('DISABLE_CRON_TIMEOUT', true);         // Vypnutí CRON timeoutu

// Revize a historie
define('WP_REVISIONS_TO_KEEP', 5);           // Počet uchovávaných revizí
define('REVISION_HISTORY_DAYS', 30);          // Historie revizí ve dnech
define('AUTOSAVE_BACKUP_COUNT', 3);           // Počet automatických záloh

// Výkon front-endu
define('DISABLE_EMOJIS', true);              // Vypnutí emoji
define('DISABLE_EMBEDS', true);              // Vypnutí embeds
define('DISABLE_JQUERY_MIGRATE', true);      // Vypnutí jQuery migrate
define('REMOVE_WP_VERSION', true);           // Odstranění verze WP z HTML

// Monitoring a logy
define('ERROR_LOG_FILE', '/custom/error.log'); // Vlastní soubor pro chyby
define('ACCESS_LOG_FILE', '/custom/access.log'); // Log přístupů
define('QUERY_LOG_FILE', '/custom/query.log');   // Log SQL dotazů

// Mezipaměť prohlížeče
define('BROWSER_CACHE_TIMEOUT', 604800);      // Timeout cache prohlížeče (7 dní)
define('STATIC_CACHE_TIMEOUT', 31536000);     // Cache pro statické soubory (1 rok)
define('HTML_CACHE_TIMEOUT', 3600);           // Cache pro HTML výstup (1 hodina)

// Rozšířené zabezpečení
define('BLOCK_UNAUTH_REST_API', true);        // Blokace neautorizovaných REST API volání
define('SECURE_AUTH_REDIRECT', true);         // Přesměrování na HTTPS pro autentizaci
define('LOGIN_LOCKDOWN_ATTEMPTS', 5);         // Počet pokusů před uzamčením
define('LOGIN_LOCKDOWN_MINUTES', 30);         // Doba uzamčení v minutách
define('PASSWORD_ROTATION_DAYS', 90);         // Vynucená změna hesla po X dnech

// Výkonnostní optimalizace
define('DISABLE_POST_AUTOSAVE', true);        // Vypnutí automatického ukládání příspěvků
define('DISABLE_TRACKBACKS', true);           // Vypnutí trackbacks
define('DISABLE_PINGBACKS', true);            // Vypnutí pingbacks
define('LIMIT_POST_REVISIONS_AGE', '30 days'); // Omezení stáří revizí

// Správa médií a souborů
define('MEDIA_TRASH_DAYS', 7);                // Dny v koši pro média
define('IMAGE_DEFAULT_QUALITY', 82);          // Výchozí kvalita JPEG
define('THUMBNAIL_CROP_ADD_FILTERS', true);   // Filtry pro ořez náhledů
define('UPLOADS_USE_YEARMONTH_FOLDERS', false); // Vypnutí složek rok/měsíc

// Rozšířené databázové nastavení
define('DB_CONNECT_TIMEOUT', 30);             // Timeout pro připojení k DB
define('DB_RESTORE_TIMEOUT', 600);            // Timeout pro obnovu DB
define('DB_BACKUP_COMPRESSION', true);        // Komprese DB záloh
define('DB_TABLE_PREFIX_LENGTH', 8);          // Délka prefixu tabulek

// Správa sessions a cookies
define('SESSION_TOKEN_SALT', 'unikatni-salt'); // Salt pro session tokeny
define('SESSION_COOKIE_PATH', '/');            // Cesta pro session cookie
define('LOGIN_COOKIE_LIFETIME', 172800);       // Životnost přihlašovacího cookie (2 dny)
define('SECURE_LOGGED_IN_COOKIE', true);       // Secure flag pro přihlašovací cookie

// Rozšířené multisite
define('SITE_ADMIN_EMAIL', 'admin@domena.cz'); // Email správce multisite
define('SITE_SIGNUP_ENABLED', false);          // Povolení registrace nových stránek
define('BLOG_UPLOAD_SPACE_NUMBER', 100);       // Prostor pro upload na blog (MB)
define('SITE_DEFAULT_THEME', 'moje-tema');     // Výchozí téma pro nové weby

// API a integrace
define('API_ACCESS_LOG', true);                // Logování API přístupů
define('API_RATE_LIMIT_WINDOW', 3600);         // Okno pro rate limiting (1 hodina)
define('EXTERNAL_API_TIMEOUT', 30);            // Timeout pro externí API volání
define('API_ERROR_REPORTING', true);           // Reportování API chyb

// Rozšířené logování
define('LOG_ROTATION_SIZE', '10M');            // Velikost pro rotaci logů
define('LOG_RETENTION_DAYS', 30);              // Doba uchování logů
define('DETAILED_ERROR_LOGGING', true);        // Detailní logování chyb
define('AUDIT_LOG_ENABLED', true);             // Povolení audit logu

// Pokročilé nastavení cache
define('CACHE_EXCLUSION_LIST', 'cart,checkout,my-account'); // Stránky vyloučené z cache
define('CACHE_MOBILE_SEPARATE', true);         // Oddělená cache pro mobilní zařízení
define('CACHE_IGNORE_QUERY_STRING', true);     // Ignorování query string pro cache
define('CACHE_PRELOAD_ENABLED', true);         // Povolení přednačítání cache

// Optimalizace obrázků
define('IMAGE_OPTIMIZATION_QUALITY', 85);       // Kvalita optimalizace
define('IMAGE_MAX_DIMENSION', 2560);           // Maximální rozměr obrázku
define('AUTO_IMAGE_RESIZE', true);             // Automatická změna velikosti
define('WEBP_CONVERSION_ENABLED', true);       // Konverze do WebP

// Vlastní konstanty pro vývojáře
define('DEV_MODE_ACCESS_IPS', '123.456.789.0,987.654.321.0'); // IP pro vývojářský mód
define('STAGING_SITE_URL', 'https://staging.domena.cz');       // URL stagingového webu
define('DEV_EMAIL_REDIRECT', 'dev@domena.cz');                 // Přesměrování emailů
define('CODE_EDITOR_THEME', 'monokai');                        // Téma editoru kódu


// Výkonnostní metriky
define('PERFORMANCE_TRACKING', true);          // Sledování výkonu
define('SLOW_QUERY_THRESHOLD', 1.5);          // Práh pro pomalé dotazy (sekundy)
define('RESOURCE_MONITOR_ENABLED', true);      // Monitoring systémových zdrojů
define('PAGE_LOAD_THRESHOLD', 2.0);           // Práh načítání stránky (sekundy)

// Rozšířené zabezpečení přihlášení
define('2FA_ENFORCEMENT', true);              // Vynucení dvoufaktorového ověření
define('FAILED_LOGIN_NOTIFY', true);          // Notifikace neúspěšných přihlášení
define('PASSWORD_COMPLEXITY_LEVEL', 'high');   // Úroveň složitosti hesel
define('AUTH_EXPIRATION', 86400);             // Vypršení autentizace (24 hodin)

// Správa headless WordPressu
define('HEADLESS_MODE', true);                // Aktivace headless módu
define('HEADLESS_FRONT_URL', 'https://front.example.com'); // URL frontendu
define('API_CORS_ORIGINS', '*');              // Povolené CORS origins
define('REST_RATE_LIMITS', true);             // Omezení počtu REST API požadavků

// Pokročilá optimalizace médií
define('RESPONSIVE_IMAGES_BREAKPOINTS', '320,768,1024,1440'); // Breakpointy pro responsivní obrázky
define('IMAGE_PROCESSING_QUEUE', true);        // Fronta pro zpracování obrázků
define('SVG_UPLOAD_ENABLED', true);           // Povolení SVG uploadů
define('MEDIA_DUPLICATE_CHECK', true);        // Kontrola duplicitních médií

// Rozšířená správa cache
define('CACHE_DEVICE_SPECIFIC', true);        // Cache specifická pro zařízení
define('CACHE_GEOLOCATION', true);            // Cache dle geografické lokace
define('CACHE_USER_SPECIFIC', true);          // Cache specifická pro uživatele
define('CACHE_WARMUP_ENABLED', true);         // Automatické zahřívání cache

// Pokročilé databázové operace
define('DB_MAINTENANCE_MODE', false);          // Režim údržby databáze
define('DB_OPTIMIZATION_SCHEDULE', 'weekly');  // Plán optimalizace DB
define('DB_TABLE_REPAIR_ENABLED', true);      // Povolení opravy tabulek
define('DB_BACKUP_ENCRYPTION', true);         // Šifrování DB záloh

// Integrace s CDN a edge sítěmi
define('CDN_PULL_ZONE', 'https://cdn.example.com'); // Pull zóna CDN
define('EDGE_CACHE_TTL', 86400);              // TTL pro edge cache
define('CDN_BYPASS_RULES', '*.php,/wp-admin/*'); // Pravidla pro bypass CDN
define('CDN_ASSET_VERSION', '1.0.0');         // Verze assets pro CDN

// Pokročilé logování a monitoring
define('LOG_API_CALLS', true);                // Logování API volání
define('LOG_CRON_JOBS', true);                // Logování CRON úloh
define('LOG_USER_ACTIONS', true);             // Logování akcí uživatelů
define('MONITORING_WEBHOOK_URL', 'https://monitor.example.com/webhook'); // Webhook pro monitoring

// Mikroservisy a integrace
define('MICROSERVICES_ENABLED', true);        // Povolení mikroservisů
define('SERVICE_DISCOVERY_URL', 'http://service-registry:8500'); // Service discovery
define('EVENT_BUS_ENABLED', true);            // Systém událostí
define('MESSAGE_QUEUE_DSN', 'amqp://localhost'); // Připojení k message queue

// GraphQL specifické
define('GRAPHQL_ENABLED', true);              // Povolení GraphQL
define('GRAPHQL_MAX_QUERY_DEPTH', 10);        // Maximální hloubka dotazu
define('GRAPHQL_MAX_COMPLEXITY', 1000);       // Maximální komplexita
define('GRAPHQL_DEBUG', false);               // Debug mód pro GraphQL

// Experimentální funkce
define('EXPERIMENTAL_FEATURES', true);         // Povolení experimentálních funkcí
define('BETA_TESTING_GROUP', 'alpha');        // Skupina pro beta testování
define('FEATURE_FLAGS', 'new-editor,dark-mode'); // Feature flags
define('PREVIEW_ENVIRONMENT', false);          // Prostředí pro náhledy

// Vlastní adresářová struktura
define('CUSTOM_INCLUDES_PATH', '/includes');   // Cesta k vlastním includes
define('CUSTOM_MODULES_PATH', '/modules');     // Cesta k modulům
define('CUSTOM_VENDOR_PATH', '/vendor');       // Cesta k vendor knihovnám
define('CUSTOM_ASSETS_PATH', '/assets');       // Cesta k assets

// Rozšířené hooks a filtry
define('DISABLE_SPECIFIC_HOOKS', 'hook1,hook2'); // Zakázání specifických hooks
define('CUSTOM_HOOK_PRIORITY', 100);           // Priorita vlastních hooks
define('FILTER_EXECUTION_LOG', true);          // Logování vykonávání filtrů


// REST API rozšíření
define('REST_API_VERSION_CONTROL', true);       // Povolí verzování REST API
define('REST_REQUEST_TIMEOUT', 30);             // Timeout pro REST požadavky v sekundách
define('REST_API_AUTH_COOKIE_NAME', 'wp_rest_auth'); // Název cookie pro REST API autentizaci
define('REST_API_NAMESPACE', 'my-api/v1');      // Vlastní namespace pro REST API

// Vyhledávání
define('SEARCH_INDEXING_ENABLED', true);        // Povolení indexace pro vyhledávání
define('SEARCH_EXCLUDE_POST_TYPES', 'attachment,revision'); // Vyloučené post typy
define('ELASTICSEARCH_HOST', 'localhost:9200');  // Elasticsearch host pro pokročilé vyhledávání
define('SEARCH_RESULT_LIMIT', 100);             // Limit výsledků vyhledávání

// Front-end optimalizace
define('CRITICAL_CSS_ENABLED', true);           // Povolení Critical CSS
define('RESOURCE_HINTS_ENABLED', true);         // Povolení Resource Hints (preload, prefetch)
define('CSS_DELIVERY_METHOD', 'async');         // Metoda načítání CSS (async/defer)
define('ABOVE_THE_FOLD_OPTIMIZATION', true);    // Optimalizace obsahu nad ohybem


// Pokročilá média
define('MEDIA_LIBRARY_FOLDERS', true);          // Povolení složek v knihovně médií
define('VIDEO_TRANSCODING_ENABLED', true);      // Automatické překódování videí
define('MEDIA_CDN_FALLBACK', 'local');         // Fallback při nedostupnosti CDN
define('RESPONSIVE_IMAGE_SIZES', '320,480,768,1024,1440,1920'); // Velikosti responsivních obrázků

// SEO optimalizace
define('SEO_SITEMAP_ENABLED', true);            // Automatická generace sitemap
define('ROBOTS_TXT_RULES', 'custom');           // Vlastní pravidla pro robots.txt
define('SCHEMA_MARKUP_ENABLED', true);          // Povolení Schema.org značek
define('CANONICAL_FORCE_HTTPS', true);          // Vynutí HTTPS v kanonických URL

// GDPR a compliance
define('GDPR_COMPLIANCE_MODE', true);           // Režim GDPR compliance
define('COOKIE_CONSENT_TYPE', 'opt-in');        // Typ souhlasu s cookies
define('DATA_RETENTION_DAYS', 365);             // Doba uchování osobních údajů
define('PRIVACY_POLICY_PAGE_ID', 100);          // ID stránky s ochranou osobních údajů

// E-commerce nastavení
define('STOCK_MANAGEMENT_METHOD', 'realtime');  // Metoda správy skladu
define('ORDER_NUMBER_PREFIX', 'WP-');           // Prefix pro čísla objednávek
define('CHECKOUT_PROCESS_TIMEOUT', 1800);       // Timeout pro dokončení objednávky
define('CART_ABANDONMENT_TIMEOUT', 3600);       // Timeout pro opuštěný košík

// Verzování a deployment
define('ASSETS_VERSION', '1.0.0');              // Verze statických souborů
define('DEPLOYMENT_ENVIRONMENT', 'staging');     // Typ prostředí pro deployment
define('BUILD_TIMESTAMP', time());              // Časová značka buildu
define('FEATURE_TOGGLE_CONFIG', '/config/features.json'); // Konfigurace feature flags

// Aplikační výkon
define('APP_STARTUP_MODULES', 'core,auth,api'); // Moduly načítané při startu
define('LAZY_LOAD_THRESHOLD', 3);               // Počet položek před lazy loadingem
define('VIEW_CACHE_STRATEGY', 'aggressive');    // Strategie cachování pohledů
define('RESOURCE_THROTTLING_ENABLED', true);    // Omezení využití zdrojů

// Uživatelské nastavení
define('USER_ROLES_CUSTOM_PATH', '/roles/');    // Cesta k vlastním uživatelským rolím
define('SESSION_DEVICE_LIMIT', 3);              // Limit současně přihlášených zařízení
define('USER_ACTIVITY_LOG_RETENTION', 90);      // Doba uchování logu aktivit
define('SOCIAL_LOGIN_PROVIDERS', 'google,facebook,apple'); // Povolení poskytovatelé

// AB testování
define('AB_TESTING_ENABLED', true);             // Povolení AB testování
define('TEST_TRAFFIC_PERCENTAGE', 50);          // Procento provozu pro testování
define('TEST_COOKIE_LIFETIME', 30);             // Životnost cookie pro AB test
define('TEST_VARIANTS_CONFIG', '/tests/variants.json'); // Konfigurace variant

// Mikroservisy a škálování
define('SERVICE_MESH_ENABLED', true);           // Povolení service mesh
define('LOAD_BALANCER_STRATEGY', 'round-robin'); // Strategie load balancingu
define('CIRCUIT_BREAKER_THRESHOLD', 5);         // Práh pro circuit breaker
define('SERVICE_HEALTH_CHECK_INTERVAL', 60);    // Interval kontroly zdraví služeb

// Analytika a tracking
define('ANALYTICS_SAMPLING_RATE', 100);         // Vzorkovací frekvence pro analytiku
define('EVENT_TRACKING_BUFFER_SIZE', 1000);     // Velikost bufferu pro události
define('CUSTOM_DIMENSIONS_CONFIG', '/analytics/dimensions.json'); // Konfigurace dimenzí
define('CONVERSION_TRACKING_POINTS', 'register,purchase,download'); // Body konverze

// Správa procesů
define('BACKGROUND_PROCESS_TIMEOUT', 300);      // Timeout pro background procesy
define('QUEUE_RETRY_ATTEMPTS', 3);              // Počet pokusů pro frontu
define('PROCESS_PRIORITY_LEVELS', 'high,medium,low'); // Úrovně priority procesů
define('JOB_SCHEDULER_TIMEZONE', 'Europe/Prague'); // Časová zóna pro plánovač

// Webhooky
define('WEBHOOK_SECRET_KEY', 'tajny-klic');     // Tajný klíč pro webhooky
define('WEBHOOK_TIMEOUT', 30);                  // Timeout pro webhook volání
define('WEBHOOK_RETRY_STRATEGY', 'exponential'); // Strategie opakování webhooků
define('WEBHOOK_MAX_PAYLOAD_SIZE', '10M');      // Maximální velikost payloadu

// PWA nastavení
define('PWA_ENABLED', true);                    // Povolení PWA
define('OFFLINE_CACHE_STRATEGY', 'stale-while-revalidate'); // Strategie offline cache
define('APP_SHELL_CACHE_TTL', 86400);          // TTL pro app shell
define('PUSH_NOTIFICATION_KEY', 'vapid-key');   // Klíč pro push notifikace

// Internacionalizace
define('I18N_FALLBACK_LOCALE', 'en');          // Fallback jazyk
define('TRANSLATION_CACHE_TTL', 3600);          // TTL pro překlady
define('LOCALE_NEGOTIATION_METHOD', 'accept-language'); // Metoda výběru jazyka
define('CURRENCY_FORMAT_OVERRIDE', true);       // Přepsání formátu měn
PHP

Závěr

Konstanty jsou mocným nástrojem v rukou WordPress vývojáře. Jejich úspěšné využití je umírněnost a pragmatický přístup. Není třeba implementovat všechny dostupné konstanty – zaměřte se na ty, které přinesou reálnou hodnotu vašemu projektu.

Pamatujte: „Dobrá konfigurace je ta, která slouží projektu, ne ta, která obsahuje všechny možné volby.“


Poznámka pro vývojáře: Před implementací jakýchkoliv konstant důkladně zvažte jejich potřebu a dopad na váš projekt. V případě pochybností začněte s minimální konfigurací a rozšiřujte ji podle skutečných potřeb.

Tento článek vychází z reálných zkušeností s vývojem WordPress projektů různých velikostí a složitostí. Věřím, že vám pomůže při rozhodování o konfiguraci vašich vlastních projektů.