Jak obnovit heslo do WordPressu, když nefunguje „Zapomenuté heslo“?
Jak si nastavit nové heslo do administrace WordPressu přes phpMyAdmin nebo soubor functions.php, když e-mail s odkazem na obnovu hesla nedorazí.
4 minuty čtení 9 kroků
Obsah návodu
Když zapomenete heslo do administrace WordPressu, obvykle stačí na přihlašovací stránce kliknout na odkaz „Zapomenuté heslo“ a počkat na e-mail s odkazem pro nastavení nového hesla. Pokud e-mail nedorazí, můžete si heslo nastavit přímo v databázi přes phpMyAdmin nebo krátkou dočasnou úpravou souboru šablony. K tomu nepotřebujete přístup do administrace, jen přihlášení do klientské sekce, případně k FTP.
Proč e-mail s odkazem nedorazí
Nejčastější příčinou je, že web neumí odesílat e-maily, nebo jeho zprávy končí ve spamu. Zkontrolujte proto složku s nevyžádanou poštou a několik minut počkejte. Pokud zpráva nepřijde, obnovte heslo jedním z postupů níže a poté nastavte odesílání pošty přes SMTP podle návodu Jak nastavit plugin Easy WP SMTP ve WordPressu, aby příště odkaz fungoval.
Před jakýmkoli zásahem do databáze si ji zálohujte podle návodu Jak exportovat databázi?. Chybná úprava může web znefunkčnit.
Postup 1: změna hesla v phpMyAdmin
- Přihlaste se do phpMyAdmin z klientské sekce (viz Jak se přihlásit do phpMyAdmin a základní orientace).
- V levém sloupci otevřete databázi webu a tabulku
wp_users. Předponawp_může být jiná, napříkladwp7x_users, hledejte tedy tabulku končící na_users. - Najděte řádek se svým uživatelským jménem (sloupec
user_login) a klikněte na Upravit. - U sloupce
user_passvyberte v rozbalovací nabídce Funkce položku MD5 a do pole Hodnota napište nové heslo. - Klikněte na Proveď. WordPress heslo zahashované pomocí MD5 přijme a po prvním přihlášení si je sám převede do svého bezpečnějšího formátu.
Postup 2: dočasná úprava souboru functions.php
Pokud se do phpMyAdmin nedostanete, nastavte heslo přes soubor functions.php aktivní šablony. Potřebujete znát ID uživatele (sloupec ID v tabulce _users; první administrátor má obvykle ID 1).
- Připojte se k FTP (Jak se připojit k webhostingu pomocí FTP) a otevřete složku
web/wp-content/themes/nazev-sablony/. - Stáhněte soubor
functions.php, uložte si jeho kopii a na jeho úplný konec přidejte řádekwp_set_password('NoveSilneHeslo', 1);, kde číslo je ID uživatele. - Soubor nahrajte zpět a jednou načtěte úvodní stránku webu. Tím se heslo nastaví.
- Řádek ihned odstraňte a soubor nahrajte znovu. Jinak by se heslo přepisovalo při každém načtení stránky a zůstalo by v souboru čitelné.
Používáte-li dětskou šablonu, upravujte její functions.php. Soubor wp-config.php k tomuto účelu nepoužívejte a nevytvářejte ani vlastní PHP skripty na FTP.
Postup 3: založení nového administrátora přes SQL
Když nevíte, který účet je administrátorský, nebo je původní účet poškozený, vytvořte nový. V phpMyAdmin otevřete databázi, klikněte na kartu SQL a spusťte tyto příkazy. Předponu wp_ upravte podle své databáze (včetně hodnot wp_capabilities a wp_user_level) a změňte jméno, e-mail i heslo:
INSERT INTO wp_users (user_login, user_pass, user_nicename, user_email, user_registered, user_status, display_name)
VALUES ('novyadmin', MD5('NoveSilneHeslo'), 'novyadmin', 'vas@email.cz', NOW(), 0, 'Nový administrátor');
SET @uid = LAST_INSERT_ID();
INSERT INTO wp_usermeta (user_id, meta_key, meta_value) VALUES
(@uid, 'wp_capabilities', 'a:1:{s:13:"administrator";b:1;}'),
(@uid, 'wp_user_level', '10');
Po obnovení hesla
- Přihlaste se a v menu Uživatelé → Profil si nastavte nové silné heslo.
- Odstraňte všechny dočasné úpravy. Pokud jste nového administrátora založili jen na přechodnou dobu, po opravě původního účtu jej smažte.
- Pokud původní heslo přestalo fungovat, i když jste si jím jisti, mohl být web napaden. Postupujte podle návodu Co dělat, když byl WordPress napaden.
Řešení problémů
- Nevidím tabulku wp_users. Předpona tabulek je jiná nebo jste otevřeli jinou databázi. Správný název databáze a předponu najdete v souboru
wp-config.php(hodnotyDB_NAMEa$table_prefix). - Po přihlášení vidím „Nemáte dostatečná oprávnění“. U nového účtu neodpovídá předpona v
meta_keypředponě tabulek (například má býtwp7x_capabilities). - Heslo nefunguje. V phpMyAdmin nebyla vybrána funkce MD5 a heslo se uložilo jako prostý text. Úpravu zopakujte.