WordPress 3.2.1 odstraňuje problémy s kompatibilitou funkcí pro JSON

WordPress 3.2.1 oficiálně vyšel už před třemi týdny a stejně tak dlouho byl rozepsaný tento článek, než se ho konečně podařilo v prázdninovém období dokončit. A i když už vlastně není moc aktuální, přesto si první opravnou verzi WordPressu 3.2 alespoň zpětně připomeneme a podíváme se podrobněji na příčiny jejího nečekaně rychlého vydání (týden po velké verzi, i když to většinou trvá měsíc).

Ještě než si projdeme některé konkrétní opravy WordPressu 3.2.1, tak si trochu rozebereme ten největší problém (chyba 18015), kde tentokrát (vyjímečně) nešlo o bezpečnost, ale ztracenou kompatibilitu. JSON (JavaScript Object Notation) je moderní a programátory často používaný způsob předávání dat, pro který měl WordPress definovány vlastní funkce, které umožňovaly fungování JSON i v případě, že ho nějaká starší verze PHP na hostingovém serveru nepodporovala. Avšak v rámci odstraňování podpory starších verzí PHP a MySQL ve WordPressu 3.2 byly právě tyto funkce odebrány. Bohužel se přitom pozapomnělo na fakt, že mnoho serverů sice používá minimálně požadovanou verzi PHP (alespoň 5.2.4), ale nemají už z nějakého důvodu aktivovanou podporu JSON. A protože mnohé pluginy funkce JSON používají a kompatibilní verze těchto verzí přestaly být součástí WordPressu (a zároveň je nepodporovalo ani nastavení serveru), tak samozřejmě docházelo k chybám. Podobný problém se pak objevil i v případě, kdy autor pluginu vůbec nepoužíval standardní funkce PHP, např. json_encode(), i když byly na serveru dostupné, ale odkazoval přímo na kompatibilní funkce z odstraněného souboru class-json.php ve WordPressu. Takže programátoři místo aby volali obecné funkce a další práci už nechali na WordPressu, tak přímo načítali odstraněný soubor, který byl však určen pouze k automatickému použití v případě nekompatibility se staršími verzemi PHP a pokud nebylo JSON podporováno, tak automaticky nabízel příslušné funkce jako náhradu.

Další opravené chyby už probereme jen stručně (ve WordPressu 3.2.1 jich bylo celkem 14):

Chyba 18020 – Byly nastaveny obecné definice fontů (pro font-family tedy sans-serif) místo různých definic specifických pro každý operační systém (např. Helvetica pro Windows). Takže font písma v administraci WordPressu by se měl nově zobrazovat podle konkrétního nastavení aktuálně používaného prohlížeče.

Chyba 17968 – Pokud jste používali nějakou vlastní taxonomii, její položky jste vložili do vlastního menu a po nějakém čase jste pak tuto taxonomii přestali používat, tak bylo celé menu „rozbité“, protože obsahovalo neexistující položky.

Chyba 18018 – A vyřešen byl i jeden postarší problém, kdy funkce body_class() poměrně dlouho generovala zbytečnou CSS třídu, která upřesňovala aktuálně použitou šablonu zobrazené stránky. Nikdo si ale tohoto problému dlouho nevšiml, takže autoři šablon začali tuto třídu používat a ve WordPressu 3.2 najednou zmizela (= problém byl opraven). Protože už ale byla třída používána (zdomácněla), tak byla ve WordPressu 3.2.1 zase vrácena (jde o třídu page-template-default pro výchozí šablonu stránek), i když vlastně ani není potřeba a duplikuje trochu třídu page.

Dále byly opraveny již spíše drobnosti týkající se zejména vzhledu a výchozí šablony. Aktualizován byl screenshot nové šablony Twenty Eleven (z formátu .jpg na vhodnější .png), proběhla drobná úprava kaskádových stylů pro (běžně nepostřehnutelné) posunutí prvků v administraci a odstraněny byly problémy s hlavním navigačním menu v administraci, které se ve zmenšené podobě (ikonky) nezobrazovalo správně, pokud uživatel používal RTL (podpora psaní zprava doleva). Pokud jste použili ve vizuálním editoru tučné písmo a pak ho chtěli obarvit, tak se tato úprava vůbec nezobrazila, což souviselo s nastavením stylů pro vizuální editor u výchozí šablony Twenty Eleven. Pokud jste neměli v záhlaví žádný text, tak byl box pro vyhledávání v prohlížeči Iinternet Explorer 7 roztažen přes celou stránku. V šabloně Twenty Eleven bylo také zapomenuto písmeno „t“, které se pak zobrazovalo u komentářů. Nadpis informačního boxu o ukončení podpory starších prohlížečů měl být správně bílý, protože černá se moc nehodí a byla nevýrazná (viz screenshot). Twenty Eleven měla i problém se zobrazováním zaheslovaných příspěvků, kde se opakovaně objevovala výzva k zadání hesla, což však nepůsobilo příliš esteticky a bylo to způsobeno funkcí comments_popup_link(), která byla použita dvakrát (jednou i pro hezké bublinky s počtem komentářů). A pokud jste chtěli měnit šířku okna vizuálního editoru v režimu nevyrušovaného psaní pomocí klávesových zkratek, tak po dosažení maximální (minimální) šířky přestal tento způsob fungovat.

Ukončení podpory Internet Exploreru 6 (WordPress 3.2)

Jak je z výše uvedeného popisu zřejmé, tak aktualizace na WordPress 3.2.1.není bezpečnostní, takže není nutné aktualizovat okamžitě. I když vzhledem k češtině, která byla oficiálně vydána až pro WordPress 3.2.1, mají tuto verzi už určitě všichni nainstalovanou. Pokud aktualizujete automaticky z WordPressu 3.2, tak by se měly nově aktualizovat pouze soubory, které byly opravdu změněny (celkem 39 změněných souborů, kompletní přehled změn zdrojového kódu). Teoreticky tak nepřijdete ani o případné úpravy jádra WordPressu, pokud nebude zrovna tento soubor při aktualizaci změněn (stejně to ale raději nedoporučujeme).

Součástí instalačního balíčku WordPressu 3.2.1 je i šablona Twenty Eleven 1.2, která již ale nebude nadále automaticky aktualizována společně s WordPressem a můžete ji tedy aktualizovat volitelně. Souvisí s tím bohužel také jeden problém, kdy při samostatné automatické aktualizaci této šablony nebude zachována již dříve instalovaná čeština (snad bude brzy opraveno), která je nově součástí pouze instalačního (a nikoli už aktualizačního) balíčku. A protože se změnil způsob automatických aktualizací, tak ukončujeme i vlastní tvorbu rozdílových aktualizačních balíčků. O celé problematice aktualizací vydáme nějaký souhrnný článek, protože různých variant je stále více. WordPress 3.2.1 můžete stahovat na oficiálním webu (anglická verze) nebo stačí využít automatickou aktualizaci. Čeština pro WordPress 3.2.1 je již také dostupná ke stažení přímo na našem webu.

2 komentáře u „WordPress 3.2.1 odstraňuje problémy s kompatibilitou funkcí pro JSON“

  1. Ahoj, dobrý den,

    Z článkú jsem nebyl schopen vyzjistiti, jestli se v 3.2 povedlo opravit/začlenit AJAX? Zdá se mi, že ne, ale radši se ptám.
    Díky

  2. Pokud myslíte podporu Ajaxu v administraci, kvůli které se opozdilo vydání WordPressu 3.1 o dva měsíce, tak stále ještě není implementována. A bohužel to vypadá, že se nedostane ani do chystaného WordPressu 3.3. Vývojáři bohužel narazili na problémy, které neumožňují rychlé řešení a zatím nebyly vyřešeny.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Můžete používat následující HTML značky a atributy: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>