Jak vyřešit status "zmeškaná publikace" ve Wordpressu

Články

10. 1. 2024

Vesmírný Pilot

Zmeškaná publikace naplánovaného příspěvku ve WordPressu je docela nepříjemný problém. Dá se však poměrně elegantně řešit. Tady si ukážeme jak na to.

Proč se status „zmeškaná publikace“ objevuje?

Stává se vám, že ve vašem WordPress webu naplánujete zveřejnění příspěvku na určitou dobu a to se nestane? Že si toho všimnete, až když se podíváte do administrace a u svého příspěvku naleznete status zmeškaná publikace?

Je to docela častý problém a to zejména u webů, které nemají až tak vysokou návštěvnost. To ale neznamená, že frekventovanější weby jsou od tohoto problému ušetřeny.

K selhání publikace příspěvku dochází v případech, že interní plánovač WordPressu v čase, kdy se má váš příspěvek publikovat, neproběhne. Interní plánovač ve WordPressu, známý pod názvem wp-cron, totiž neběží v pravidelných intervalech.

Jak funguje interní plánovač WP-Cron

WP-Cron je interní plánovač úloh ve WordPressu, který se používá k plánování opakujících se úkolů, jako je například publikování příspěvků.

WP-Cron pracuje tak, že při načtení stránky zkontroluje seznam všech naplánovaných úkolů, které mají být provedeny.

Tedy z toho je jasné, že kontrola naplánovaných úloh neprobíhá pravidelně. Ale pouze při načítání stránek. Pokud na váš web nějakou dobu nikdo nepřijde, ke kontrole naplánovaných úloh nedojde a může tak např selhat i plánovaná publikace vašeho článku.

Podle dokumentace WordPressu by sice měly všechny neproběhlé úlohy proběhnout někdy v budoucnu, ale praxe ukazuje, že toto plánované publikování příspěvků v určitý čas selhává.

WP-Cron a vliv na rychlost webu

WP-Cron není skutečný plánovací systém. Je to určitá náhrada klasických cron systémů známých ze systémů Unix. Jeho cílem je nabídnout základní funkcionalitu pro plánování úkolů.

Díky této funkcionalitě např. dochází k plánovaným kontrolám aktuálnosti jádra WordPressu nebo pluginů. Jsou zasílána různá emailová upozornění. A další úkoly.

Nicméně je to stále jenom náhrada. A ne zcela ideální. To, že funguje vždy během načítání stránky vlastně znamená, že dochází ke zpomalení načtení obsahu pro návštěvníka vašeho webu. Pokud váš web není zrovna ideálně připravený, může způsobit viditelnou prodlevu při zobrazení stránky návtěvníkovi. A to nepřispívá k dobrému zážitku lidí, kteří navštíví váš web

Jak vylepšit plánování úloh  příspěvků ve WordPressu

Rozhodně doporučujeme, aby každý WordPress změnil systém a mechanismus pro plánované úkoly. Místo volání WP-cron během načítání stránek je mnohem lepší využít standardní systém plánování úkolů, které nabízí hosting server.

Tímto bude zajištěno, že kontrola naplánovaných úloh bude probíhat pravidelně a bez ohledu na návštěvnost vašeho webu. Zároveň dojde k odlehčení situace při načítání stránek a tím k rychlejšímu poskytnutí obsahu ze strany WordPress webu návštěvníkovi.

U Hostingu se většinou jedná o server se systémem Linux, který nabízí klasickou funkcionalitu pomocí funkce cron. Nastavení probíhá ve dvou krocích:

1. Konfigurace WordPressu aby dále nepoužíval interní WP-CRON plánování při načítání stránek. Toto se perovede umístěním následujícího řádku do souboru wp-config.php

define( 'DISABLE_WP_CRON', true );

2. Nastavení cron úlohy pomocí crontab případku v systému Linux nebo např pomocí správcovského rozhraní vašeho hostingu.

tedy např můžete definovat cron úlohu takto:

30 * * * * wget -q -O - https://domain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

což spustí kontrolu plánovaných úloh 1x za hodinu, vždy v půl.

Samozřejmě jak často chcete plánování spouštět je na vašem uvážení a záleží na povaze vašeho webu. Doporučujeme minimálně 2x denně, lépe 4x.

Využijte správce vašeho webu

Pokud si nejste jisti, jak přesdně celou tuto věc nastavit, obraťte se na správce vašeho webu. Pokud žádného nemáte, napište nám a domluvíme se, jak to pro vás udělat.