Neplatná odpověď JSON ve WordPressu: co dělat, když se příspěvek neuloží
Neplatná odpověď JSON ve WordPressu, tedy hláška „Aktualizace selhala. Odpověď není platnou odpovědí JSON“ (Updating failed. The response is not a valid JSON response), znamená, že editor při ukládání nedostal správnou odpověď. Obvyklé příčiny jsou rozbité trvalé odkazy, nesouhlasná adresa webu, bezpečnostní plugin nebo firewall blokující REST API a problémy s HTTPS. Nejdřív zachraňte obsah, pak projděte kontroly postupně.
Autor: Tým TellMyShop. Průvodce pro majitele webů na WordPressu a obchodů na WooCommerce: příčina, ruční oprava a stejná práce v rozhovoru v chatu.
Naposledy aktualizováno: · 5 min čtení
Nejdřív zachraňte obsah
Než cokoli změníte, zajistěte, co jste napsali. Chyba se týká ukládání, ne textu v okně editoru.
- Nezavírejte kartu a neobnovujte stránku.
- Označte veškerý obsah v editoru, zkopírujte ho a vložte do textového souboru nebo dokumentu.
- Zvlášť zkopírujte titulek a, pokud jste ho měnili, popis pro Google z panelu SEO pluginu.
- Teprve teď zavřete editor a začněte hledat příčinu.
Po opravě obsah vložíte zpět. Zabere to minutu a ušetří vám psaní příspěvku od začátku.
Proč editor potřebuje odpověď JSON
Blokový editor ukládá příspěvky přes REST API, interní adresu WordPressu, se kterou komunikuje ve formátu JSON. Popisuje ji příručka WordPress REST API. Když něco po cestě odpověď nahradí, například přesměrování z http na https, chybová stránka serveru, blokace firewallu nebo varování PHP přilepené k odpovědi, editor ji nepřečte a ukáže tuto hlášku.
Proto má jedna hláška mnoho možných příčin. Pomůže zjistit, jestli se chyba týká všech příspěvků, nebo jen jednoho.
| Příznak | Nejpravděpodobnější příčina | Kde hledat |
|---|---|---|
| Neuloží se žádný příspěvek ani stránka | trvalé odkazy, adresa webu, HTTPS | Nastavení → Trvalé odkazy, Nastavení → Obecné |
| Chyba začala po instalaci nebo aktualizaci pluginu | ten plugin | Pluginy → Instalované pluginy |
| Ukládá se všechno kromě jednoho příspěvku | firewall blokuje část obsahu, nebo velký obrázek | obsah toho příspěvku, nastavení firewallu |
| Chyba se objevila po přechodu na HTTPS nebo změně domény | Adresa webu a Adresa WordPressu se liší | Nastavení → Obecné |
| Stav webu hlásí chybu REST API | bezpečnostní plugin, firewall hostingu, Cloudflare | Nástroje → Stav webu |
| Chyba se objeví při nahrávání obrázku do příspěvku | velikost souboru nebo časový limit na serveru | hosting |
Záchranný postup: šest kroků v pořadí
Po každém kroku zkuste příspěvek uložit. Když to funguje, skončete.
- Znovu uložte trvalé odkazy. Přejděte do Nastavení → Trvalé odkazy a klikněte na Uložit změny, aniž byste cokoli měnili. WordPress obnoví svá pravidla pro adresy a na serverech Apache obvykle i soubor .htaccess.
- Porovnejte obě adresy. V Nastavení → Obecné mají pole Adresa WordPressu a Adresa webu používat stejný protokol a doménu, například obě s https a www, nebo obě bez www.
- Podívejte se do Stavu webu. Přejděte do Nástroje → Stav webu. Pokud je tam položka o REST API, rozbalte ji. Často obsahuje kód chyby, který ukáže na viníka, například 403 u firewallu. Ostatní položky vysvětlujeme v článku o Stavu webu ve WordPressu.
- Dočasně deaktivujte bezpečnostní a cache pluginy. Právě ty nejčastěji zachytávají požadavky editoru. Pokud ukládání funguje, přidejte v nastavení toho pluginu výjimku pro REST API, nebo problém nahlaste jeho autorovi.
- Zkontrolujte firewall mimo WordPress. Ukládání může blokovat Cloudflare nebo firewall hostingu. Průvodce Hostingeru k této chybě vysvětluje, jak to ověřit pomocí učícího režimu firewallu.
- Zbývající pluginy deaktivujte po jednom. Pokud nic nepomohlo, hledejte konflikt. Začněte pluginy, které jste přidali nebo aktualizovali naposledy.
Mnoho návodů, včetně WPBeginner, radí také na chvíli přejít na Klasický editor. Je to obejití: příspěvek se uloží, ale chyba REST API zůstane a může rozbít jiné věci.
Kdy to předat hostingu nebo vývojáři
Pokud chyba přetrvá i po šesti krocích, příčina je obvykle hlouběji: v pravidlech serveru, certifikátu, limitech nebo kódu šablony, který ke každé odpovědi něco přidává.
Hostingu dejte adresu stránky, přesný čas posledního pokusu o uložení a co jste už zkontrolovali. Požádejte o záznam chyb serveru a záznamy firewallu z té doby. Vývojář zapne zápis chyb do souboru debug.log s vypnutým zobrazováním na obrazovce, jak popisuje dokumentace WordPressu k ladění, a zjistí, co odpověď rozbíjí.
Pokud celý web místo této hlášky ukazuje chybu serveru, přejděte na náš návod k chybě 500 ve WordPressu.
Jak chat pomůže najít příčinu
Plugin TellMyShop pro WordPress a WooCommerce propojí váš chat (Claude nebo ChatGPT) s webem vlastní cestou, oddělenou od editoru. Pokud toto spojení funguje, chat pomůže s diagnostikou, i když editor příspěvky neukládá. Pokud firewall blokuje celé REST API, nemusí fungovat ani spojení a pak vám zbývají kroky výše.
V bezplatné verzi TellMyShop Free chat čte Stav webu, seskupené chyby PHP a WordPressu z posledních dní a seznam pluginů s verzemi a dostupnými aktualizacemi. Z toho ukáže na nejpravděpodobnější příčinu.
Vy: Od včerejška mi při ukládání příspěvků vyskakuje „Odpověď není platnou odpovědí JSON“.
Váš chat: Stav webu hlásí chybu REST API s kódem 403. Od včerejška záznamy ukazují opakované varování z pluginu Example Security u požadavků editoru. Žádné jiné pluginy chyby nehlásí.
Váš chat: Nejspíš tento plugin blokuje ukládání z editoru. Navrhuji ho na zkoušku deaktivovat. Náhled:
Riziko: během testu web tuto ochranu nemá. Můžete to vrátit zpět z historie změn.
Vy: Ano.
Váš chat: Deaktivováno. Stav webu už chybu REST API nehlásí. Zkuste příspěvek uložit. Pokud to funguje, nahlaste problém autorovi pluginu nebo v jeho nastavení přidejte výjimku a pak ho znovu aktivujte.
stará verze: Example Security: aktivní
nová verze: Example Security: neaktivní
Název pluginu a kód chyby v této konverzaci jsou příklady. Deaktivace pluginu funguje v TellMyShop Pro se zapnutým přepínačem Pluginy, který platí 24 hodin a vyžaduje dnešní zálohu databáze. Chat vždy ukáže náhled a čeká na váš souhlas. Nemění .htaccess, wp-config.php, certifikát ani firewall serveru. Nastavení trvalých odkazů umí uložit jen se zapnutým přepínačem Šablona a ve většině případů to jedním kliknutím zvládnete rychleji sami.
Podrobnosti o jednotlivých verzích najdete na stránce TellMyShop pro WordPress a v ceníku. Bezplatnou verzi si stáhnete ze stránky TellMyShop Free.
Otázky a odpovědi
Co znamená „Odpověď není platnou odpovědí JSON“?
Editor poslal váš příspěvek WordPressu a čekal odpověď ve formátu JSON, ale dostal něco jiného: chybovou stránku, přesměrování nebo varování PHP. Hláška sama neříká, co se postavilo do cesty. Příčinu najdete postupně, počínaje trvalými odkazy a pluginy.
Přišel jsem o změny v příspěvku?
Nezavírejte kartu editoru, dokud obsah někam neuložíte. Zkopírujte ho do textového souboru a po vyřešení problému ho vložte zpět. WordPress často drží i automatické uložení, které nabídne, když příspěvek znovu otevřete.
Proč se chyba objevuje jen u některých příspěvků?
Obvykle proto, že firewall blokuje obsah, který vypadá podezřele, například kousek kódu nebo vložený skript. Další příčinou je velký obrázek nebo časový limit serveru u dlouhého příspěvku. Zkontrolujte, čím se tento příspěvek liší od těch, které se ukládají normálně.
Můžu se prostě vrátit ke Klasickému editoru?
Klasický editor ukládá příspěvky jinou cestou, takže chyba obvykle zmizí. Problém s REST API ale na webu zůstává a může rozbít jiné věci, třeba pluginy a naplánované úlohy. Berte to jako dočasné řešení na pár dní a příčinu stejně najděte.
Opraví plugin TellMyShop tuto chybu?
Pomůže vám najít příčinu. V bezplatné verzi TellMyShop Free chat čte Stav webu, záznamy chyb a seznam pluginů. V TellMyShop Pro se zapnutým přepínačem Pluginy umí po náhledu a vašem souhlasu deaktivovat podezřelý plugin. Nezmění .htaccess, certifikát ani firewall serveru.
WordPress je ochranná známka WordPress Foundation. WooCommerce je ochranná známka společnosti Automattic Inc. Claude je ochranná známka společnosti Anthropic PBC. ChatGPT a OpenAI jsou ochranné známky společnosti OpenAI. TellMyShop s těmito společnostmi není propojen.