Jak zobrazit zkrácený zápis (shortcode) v příspěvku aneb „escapování“

Při přípravě včerejšího příspěvku o pluginu WP-Table Reloaded jsem narazil na zajímavý problém, se kterým jsem si nějakou dobu nevěděl vůbec rady (pomohl mi nakonec až autor výše zmíněného pluginu, protože jsem se ho po marném pátrání zeptal). Chtěl jsem uvést nějaký příklad vkládaného zkráceného zápisu (shortcode) tabulky do příspěvku, ale pokaždé když jsem ho tam […]

Skrytá stránka s nastavením pro vývojáře v administraci WordPressu

Ano, i ve WordPressu existuje jedna utajená stránka s nastavením dostupná pouze pro administrátory. Jde vlastně o výpis databázové tabulky options (s defaultním předponou jde konkrétně o wp_options), kde si můžete prohlédnout (a také upravovat) některá nastavení WordPressu či dalších pluginů. Alespoň tak můžete jednoduše prozkoumat, co všechno si k vám do databáze používané pluginy ukládají. Samozřejmě také předem upozorňujeme, že pokud chcete něco upravovat, […]

Kontrola kompatibility pluginů před aktualizací

Stává se, že po aktualizaci WordPressu na jeho nejnovější verzi zjistíte, že některé z instalovaných pluginů již nejsou funkční. A to může způsobit velké nepříjemnosti.

S pluginem myPluginSafeUpgrade jedním kliknutím po jeho aktivaci u velké části pluginů ověříte, s jakou verzí WordPressu jsou kompatibilní. A to je výhodné zjistit předtím než začnete s aktualizací […]

Články o WordPressu, které stojí za pozornost

Stále častěji se setkávám s články o WordPressu, které zaujmou moji pozornost, informaci o nich většinou dám třeba na facebook, a tím to končí. Ti, kdo facebook nesledují, se o nich tudíž nedozví. Tady na webu se snažím jet po své vlastní linii, takže na podobné články upozorňuji spíše zřídka, ani dané téma neduplikuji, když […]

Přidání vodoznaku do nahrávaného obrázku

Plugin Watermark RELOADED přesněji řečeno přidá do nově nahraného obrázku na určenou pozici libovolný text, který například poslouží k uvedení copyrightu.

Mnohým to může velmi usnadnit práci, text ve zvolené barvě, pozici a jednom z nabízených klasických fontů i velikosti, se při nahrání vloží do vybraného typu obrázku (zvlášť či kompletně od thumbnailu až po […]

Dynamické tlačítko zpět nahoru

Tlačítko usnadňující rychlý návrat na začátek stránky nabízí plugin Dynamic „To Top“.

Princip jeho fungování je prostý. Po aktivaci se při rolování webové stránky směrem dolů objeví po pravé straně černé tlačítko s šipkou vzhůru, které čtenáře po kliknutí jednoduše přenese na začátek (top) stránky. Jednoduchá, ale efektní funkce.
Plugin byl aktualizován pro WordPress 2.9.2. Vyžaduje WordPress […]

Efekt lupy (zoomu) v obrázcích s pluginem Image Zoomer

Zajímavý efekt přidává obrázkům plugin Image Zoomer, který se při přejíždění obrázku myší zobrazí jako čtverec (jehož velikost určíte v nastavení), pod nímž se překrytá část obrázku zvětší jako pod lupou.

Administrace pluginu se po aktivaci vloží klasicky do bočního menu Nastavení, kde můžete určit, jak velkou sílu zvětšení bude zoom mít (nastaveno je 2), […]

Reklamní čtverce 125×125 v sidebaru

V řadě vzhledů jsem viděla podobné čtverce přímo vloženy do sidebaru jako součást dané šablony, takže to lze považovat za jakýsi trend. Do čtverců o rozměru 125 x 125 se dá vložit například Adsense reklama, loga sponzorů, obrázky, ale také texty. Obsah každého čtverce je možné libovolně modifikovat.

Podle popisku widgetu lze do jednotlivých políček vložit: […]

Vložení widgetů do příspěvků

Hned v úvodu musím říci, že tenhle plugin mi přijde opravdu užitečný a velmi mě zaujal. Jestli jste někdy přemýšleli, jak vložit některý z widgetů, které lze běžně dát „jen“ do sidebaru, podle potřeby někam do příspěvku, například pomocí shortcode, tak zbystřete, plugin AmR shortcode any widget přesně tohle umí.

Po aktivaci pluginu se do menu […]

Jak na české formátování čísel ve WordPressu

WordPress je výborný publikační systém, a to nemám na mysli jen systém samotný, ale i češtinu, která je pro WordPress k dispozici. Bohužel zde máme jednu maličkost, která k dokonalosti chybí. A tou je formátování čísel, které i při použití češtiny odpovídá anglickým konvencím, tedy desetinná místa odděluje tečka a tisíce odděluje čárka. V češtině to ale má být jinak, desetinným oddělovačem má být čárka, kdežto oddělovačem tisíců má být mezera. (pro hnidopichy, moc dobře vím, že oddělovačem tisíců by neměla být normální, ale tenká mezera, to se ovšem na webu realizuje ještě hůře než normální mezera)

Ono se to snadno napíše, krásná teorie, pokud si ale myslíte, že jen tak vlezete do zdrojáků češtiny pro WordPress a položky si opravíte, okamžitě se vystavíte problému. Totiž webové stránky (stejně jako drtivá většina aplikací pracujících s textem) odstavce zalamují do jednotlivých řádků podle mezer. Což je v pořádku právě do té doby, než Vám mezery začnou oddělovat tisíce v číslech. Protože řádek uprostřed čísla zalomit nechcete. Číslo potřebujete držet pohromadě. Řešení se nazývá tvrdá mezera a tím se řítíme do největších hlubin trapné chyby, se kterou se musíme poprat. (doplnění informace o tenké mezeře z předchozího odstavce: tenká mezera reperezentovaná entitou   je totiž v HTML zlomitelná přes řádek, tak proto ji nemůžeme použít pro formátování čísel)

Ne, chyba se nenachází v češtině pro WordPress. Nenachází se ani ve WordPressu samotném. Je skryta ještě níže, přímo v samotném PHP. Totiž, WordPress naprosto správně pro formátování čísel používá nativní funkci PHP, která se jmenuje number_format(). Potíž je v tom, že tato funkce neumí pracovat s tvrdými mezerami, a to ani s řetězcem   ani s pevnou mezerou zapsanou jako ASCII znak o hodnotě 160. Pokud ji předhodíte, že má použít pro oddělení tisíců tvrdou mezeru, ve výsledku místo ní dostanete čtvereček. To je naprosto nepoužitelné.

A naprosto trapné na celé situaci je, že problém s touto funkcí je reportovaný do PHP již mnoho let (viz velmi dlouhý log u popisu této funkce), netrápí jenom Čechy, ale i mnohé početnější národy používající stejné formátování, jmenujem třeba Francii nebo Rusko. A nikdo s tím nic nedělá.

Rozhodl jsem se, že se se situací nesmířím. Na svém webu chci mít čísla naformátovaná správně česky. Asi bych uměl najít zmíněnou funkci ve zdrojácích PHP a zkompilovat si vlastní modifikaci, bohužel PHP u svého web-hostera nevyměním, takže situaci musím vyřešit o úroveň výše, ve WordPressu. Nejedná se však o situaci, kterou by šlo vyřešit plug-inem, ale musel jsem sáhnout napřímo do střev samotného WordPressu. To ve výsledku znamená, že s každým upgradem WordPressu, byť tím nejmenším, to musím udělat znova.

Vlevo u seznamu souborů ke stažení vidíte, že to vše funguje správně. Velikost souborů má desetinnou část oddělenou čárkou a u počtu stažení je vždy oddělovačem tisíců nedělitelná mezera, takže se nestane, že by se číslo rozdělilo na více řádků. Tak to má být.

Pokud chcete, aby i na Vašem webu byla čísla správně česky naformátována, můžete si stáhnout následující archiv. V něm najdete tři soubory, které nahrajte (do příslušných adresářů) Vaší instalace WordPressu přes ty původní. Pozor: soubory v tomto archivu jsou v této chvíli pro WordPress verze 2.9.2 a pokud máte jinou verzi WordPressu, tak to nedělejte, WordPress by mohl přestat fungovat. Modifikace je určena jen pro verzi 2.9.2, pro žádnou jinou.

Note: There is a file embedded within this post, please visit this post to download the file.

Dobrá zpráva na závěr: tento problém jsem již před časem nahlásil vývojovému týmu WordPressu a lze předpokládat, že nějakým způsobem se s ní popasují a v budoucnu bude možné, aby oficiální čeština měla korektní formátování čísel tak, jak má být. Zatím se řeší, jakým způsobem toto zařídit, jestli tak, jak jsem to udělal já, nebo nějakým filtrem, ale to je méně podstatné; nyní je milestone nastavený na verzi 3.0, tzn. vývojový tým by to chtěl mít v této verzi již vyřešené (ale na druhé straně si můžete v logu všimnout, že už se oprava plánovala pro verzi 2.9 a pak se to zrušilo). Tak držme palce, že řešení popsané a nabídnuté ke stažení v tomto článku je pouze dočasným workaroundem.