Tak to byl nakonec docela zajímavý problém :-) Hlavní příčina spočívala v tom, že tam byl duplicitní název pro šablonu stránky. Co to přesně znamená?
U konkrétní stránky byla původně nastavena šablona s názvem “Prumysl 2” (aneb Template Name
v příslušném PHP souboru) a souborem page_prumysl2.php
(je to uloženo v uživatelském poli s názvem _wp_page_template
). Jenomže na FTP došlo postuně ke změnám souborů a některé šablony pro stránky se nyní jmenují stejně “Prumysl 2”. Metoda get_post_templates(), která zajišťuje jejich zobrazení v pravém boxu “Vlastnosti stránky” (vpravo pod tlačítkem Publikovat/Aktualizovat) totiž NEZOBRAZUJE všechny duplicitní názvy, ale pouze soubor, který byl naposledy (!) upraven. Takže když máte několik PHP souborů se stejným názvem šablony, tak se v nabídce dropdownu zobrazí pouze ten naposledy aktualizovaný, což je v tomto případě page_prumysl2_old.php
.
A co z toho vyplývá? Pro konkrétní stránku máte tedy nastavenou (uloženou v databázi) hodnotu page_prumysl2.php
, ale když dojde k zobrazení editační stránky, tak WordPress nabízí pod stejným názvem “Průmysl 2” možnost page_prumysl2_old.php
. Takže v nabídce dropdownu page_prumysl2.php
nikde nenajde a považuje ji za ztracenou a automaticky tam předvolí výchozí šablonu, tedy page.php
. Při jakékoli aktualizaci stránky je tam tedy smazáno nastavení šablony pro stránku a vše se zobrazuje podle defaultního souboru šablony page.php
.
Je to zajímavý problém, dokonce byl hlášen i vývojářům, aby alespoň zobrazovali nějaké upozornění v případě duplicitních názvů šablon, ale zatím to bylo odmítnuto…
Jednoduché řešení tedy spočívá v tom, nepřejmenovávat soubory se šablonami stránek (nebo přitom měnit i Template Name
), protože to může způsobovat problémy. A pro jeden název šablony tam mít pouze jeden příslušný PHP soubor.