Prezentace z WordCampu 2014

tvorba_jednoduchych_webuNa WordCampu jsem měl přednášku na téma „Tvorba jednoduchých firemních webů“. Tato přednáška byla v sekci uživatelé, a hodí se pro ty kteří na WordPressu spíše začínají nebo mají vlastní blog.

Brzy napíši report „Jak jsme pořádali první WordCamp“ kde najdete kompletní přehled co všechno to obsahovalo.

[slideshare id=31539653&doc=jednoduchwebnawordpressuv4-140223105930-phpapp01]

The post Prezentace z WordCampu 2014 appeared first on wpmax.cz.

WordPress jako základní kámen online magazínu

Během své přednášky na Pražském WordCampu jsem byl dotázán, proč byla pro tvorbu webu parade.com zvolena platforma založená na WordPressu, když jsme si celou frontendovou část tak trochu napsali znovu a po svém. Tento článek má být reakcí na tuto otázku, kterou jsem, jak se vyjádřil Jaroslav Polakovič, nedokázal dostatečně autoritativně zodpovědět.

Nebudu se rozepisovat o tom, že použití logic less templates (Mustache) namísto tradičního WordPress stylu mixujícího PHP s HTML (rozuměj logiku, a to někdy i docela složitou, s reprezantací dat) v rámci jednoho souboru, mělo původ především ve vizi umožit nazávislou práci „fronendistů“ a backend vývojářů v budoucnosti (platforma by se měla dále rozvíjet a s ní i tým ji spravující), ale také zpřehlednit šablonovací systém. Jak zaznělo na přednášce, v parade.com nikdy nemodifikujeme jádro WordPressu a veškeré aktualizace po řádném otestování nasazujeme a platforma nadále běží, a to i přes to, že šablony servírujeme jinak, než jak je zvykem.

Co musí online verze magazínu umět

Otázka „Proč jsme si nenapsali celou aplikaci od píky na míru našim potřebám?“ je, dle mého skromného názoru, takový trochu český způsob přemýšlení o vývoji webu. Pojďme se podívat na to, co taková aplikace pohánějící online verzi magazínu potřebuje umět (kdo znáte WordPress, odpovíte si sami na to, co zvládne a co nikoli):

  • Správa uživatelů a uživatelských práv (registrace, editace profilů etc…)
  • Tvorba a správa obsahu
    • Různé typy obsahu (články, strukturované recepty, recenze, události … )
    • Správu multimédií
      • Obrázky, Videa, Zvuk …
  • Komentáře
  • Newsletter
  • Provázání obsahu s dalšími platformami (facebook, spotify, twitter …)
  • Reklamní platforma
  • Statistiky
  • … (další specifické funkce dle potřeb daného média)

Při vývoji, a to už platí o tvorbě jakéhokoli webu, je třeba ještě design a z něj vycházející HTML, CSS, JS.

Co musíme řešit při návrhu aplikace na zelné louce

Pokud bychom šli do tvorby takovéto platformy jen s aplikačním frameworkem (a to v případě, že realizační tým není složen z cowboyů pracujícím s čistým PHP a tvořícím framework na míru, jelikož je to tak nejlepší), čekala by nás dlouhá cesta:

  • Návrh databáze
    • uživatelé, obsah, kategorizace
    • z technictějšího pohledu jsou zde indexy pro vyhledávání
    • SQL dotazy sloužící pro výběr potřebných dat
  • Návrh a tvorba hierarchie uživatelských účtů (role? práva?)
  • Návrh administračního rozhraní
    • na začátek je problém vybrat a implementovat WYSIWYG editor
    • v neposlední řadě hovoříme o designu (přehlednost, použitelnost)
      • jak budeme řešit administraci z mobilu? Vlastní androidí aplikace? (to chce to API)
  • Cachování (aplikace musí být škálovatelná)
  • Možnost dalšího rozvoje platformy (feature requesty a jejich snadná implementace)

A až poté (v rámci implementace, nikoli návrhu, ten s tím již musí počítat) bychom se dostali k potřebám vlastního CMS pro online magazín a specifické požadavky daného webu.

Co ve WordPressu funguje out of the box

Tím, že nasadíme WordPress dostaneme něco, co je po 5 minutové instalaci schopno běžet a pokrýt základní potřeby CMS pro online magazín

  • uživatelské role
  • možnost tvořit a publikovat obsah
    • TinyMCE (těšíme se na verzi 4)
    • správa multimédií
    • oembeds
  • komentáře
  • …
  • a v nespolední řadě také známé prostředí (kritizujte TinyMCE, návrh UI a podobně, ale lidé to znají)

Co WordPress umí ale je opomíjeno

Z pohledu vývojáře platformy za nás WordPress vyřešil spoustu problémů a to také těch, o kterých provozovatel osobního blogu s návštěvností v desítkách či stovkách denně, ani nemá tušení o jejich existenci ani o tom, že by je mohl potřebovat. S WordPressem dostaneme jaksi věnem například:

  • použitelný, i když ne ideální, návrh databáze
    • a že WP databáze toho snese hodně
    • o SQL dotazy při vývoji na WordPressu jeden nemusí zavadit jak je rok dlouhý
  • cachování
    • o tomhle bych se někdy velice rád rozepsal, ale vězte, že WordPress a cache si rozumí velmi dobře i bez cachovacích pluginů (jak si myslíte, že cachovací pluginy fungují? Magie???)
  • možnost rozšiřovat funkcionalitu
    • svépomocí (filters, action hooks)
    • pluginy (když není čas ztrácet čas, ale chce to dvakrát měřit než to tam řízneme)
    • a to nehovořím o čase potřebném k zaučení dalšího vývojáře (jsem ve standardizovaném prostředí)
  • AJAX
  • rozšiřitelnost administračního prostředí
  • …

To co na vývojáře zbude jsou poté jen specifické požadavky na funkcionalitu a i mezi nimi se najde spousta těch, pro které WordPress má již hotové řešení (jen je zapnout):

  • různé typy obsahu (custom post types, post formats)
  • vlastní taxonomie (a to nejen pro obsah)
  • rozšiřitelnost a úprava uživatelských práv

Samozřejmě jsou věci, které si vývojářský tým musí napsat sám, ale to je třeba vždy, ať již stavím na WordPressu či nikoli.

Závěrem

Z vlastní zkušenosti platí to, co si z mé přednášky poznamenal Martin Koníček. Během 9 měsíců vývoje webu parade.com jsme byli schopni kompletně* migrovat obsah i uživatele z OpenCMS na WordPress, nasadit vlastní šablonovací systém a na něm nahodit HTML, CSS a bohatý JavaScript. Vyřešit škálovatelnost webu pro tisíce konkurentních návštěvníků a milióny shlédnutí měsíčně. To nad čím trávíme čas jsou věci, které jsou opravdu potřeba k tomu, aby web běžel, rostl a vydělával dle plánu.

* Migrace proběhla v několika vlnách a první část nového webu (obsah typu článek, kategorie, registrace uživatelů) běžely na novém systému již po půl roce práce.

WordPress jako základní kámen online magazínu

Během své přednášky na Pražském WordCampu jsem byl dotázán, proč byla pro tvorbu webu parade.com zvolena platforma založená na WordPressu, když jsme si celou frontendovou část tak trochu napsali znovu a po svém. Tento článek má být reakcí na tuto otázku, kterou jsem, jak se vyjádřil Jaroslav Polakovič, nedokázal dostatečně autoritativně zodpovědět.

Nebudu se rozepisovat o tom, že použití logic less templates (Mustache) namísto tradičního WordPress stylu mixujícího PHP s HTML (rozuměj logiku, a to někdy i docela složitou, s reprezantací dat) v rámci jednoho souboru, mělo původ především ve vizi umožit nazávislou práci „fronendistů“ a backend vývojářů v budoucnosti (platforma by se měla dále rozvíjet a s ní i tým ji spravující), ale také zpřehlednit šablonovací systém. Jak zaznělo na přednášce, v parade.com nikdy nemodifikujeme jádro WordPressu a veškeré aktualizace po řádném otestování nasazujeme a platforma nadále běží, a to i přes to, že šablony servírujeme jinak, než jak je zvykem.

Co musí online verze magazínu umět

Otázka „Proč jsme si nenapsali celou aplikaci od píky na míru našim potřebám?“ je, dle mého skromného názoru, takový trochu český způsob přemýšlení o vývoji webu. Pojďme se podívat na to, co taková aplikace pohánějící online verzi magazínu potřebuje umět (kdo znáte WordPress, odpovíte si sami na to, co zvládne a co nikoli):

  • Správa uživatelů a uživatelských práv (registrace, editace profilů etc…)
  • Tvorba a správa obsahu
    • Různé typy obsahu (články, strukturované recepty, recenze, události … )
    • Správu multimédií
      • Obrázky, Videa, Zvuk …
  • Komentáře
  • Newsletter
  • Provázání obsahu s dalšími platformami (facebook, spotify, twitter …)
  • Reklamní platforma
  • Statistiky
  • … (další specifické funkce dle potřeb daného média)

Při vývoji, a to už platí o tvorbě jakéhokoli webu, je třeba ještě design a z něj vycházející HTML, CSS, JS.

Co musíme řešit při návrhu aplikace na zelné louce

Pokud bychom šli do tvorby takovéto platformy jen s aplikačním frameworkem (a to v případě, že realizační tým není složen z cowboyů pracujícím s čistým PHP a tvořícím framework na míru, jelikož je to tak nejlepší), čekala by nás dlouhá cesta:

  • Návrh databáze
    • uživatelé, obsah, kategorizace
    • z technictějšího pohledu jsou zde indexy pro vyhledávání
    • SQL dotazy sloužící pro výběr potřebných dat
  • Návrh a tvorba hierarchie uživatelských účtů (role? práva?)
  • Návrh administračního rozhraní
    • na začátek je problém vybrat a implementovat WYSIWYG editor
    • v neposlední řadě hovoříme o designu (přehlednost, použitelnost)
      • jak budeme řešit administraci z mobilu? Vlastní androidí aplikace? (to chce to API)
  • Cachování (aplikace musí být škálovatelná)
  • Možnost dalšího rozvoje platformy (feature requesty a jejich snadná implementace)

A až poté (v rámci implementace, nikoli návrhu, ten s tím již musí počítat) bychom se dostali k potřebám vlastního CMS pro online magazín a specifické požadavky daného webu.

Co ve WordPressu funguje out of the box

Tím, že nasadíme WordPress dostaneme něco, co je po 5 minutové instalaci schopno běžet a pokrýt základní potřeby CMS pro online magazín

  • uživatelské role
  • možnost tvořit a publikovat obsah
    • TinyMCE (těšíme se na verzi 4)
    • správa multimédií
    • oembeds
  • komentáře
  • …
  • a v nespolední řadě také známé prostředí (kritizujte TinyMCE, návrh UI a podobně, ale lidé to znají)

Co WordPress umí ale je opomíjeno

Z pohledu vývojáře platformy za nás WordPress vyřešil spoustu problémů a to také těch, o kterých provozovatel osobního blogu s návštěvností v desítkách či stovkách denně, ani nemá tušení o jejich existenci ani o tom, že by je mohl potřebovat. S WordPressem dostaneme jaksi věnem například:

  • použitelný, i když ne ideální, návrh databáze
    • a že WP databáze toho snese hodně
    • o SQL dotazy při vývoji na WordPressu jeden nemusí zavadit jak je rok dlouhý
  • cachování
    • o tomhle bych se někdy velice rád rozepsal, ale vězte, že WordPress a cache si rozumí velmi dobře i bez cachovacích pluginů (jak si myslíte, že cachovací pluginy fungují? Magie???)
  • možnost rozšiřovat funkcionalitu
    • svépomocí (filters, action hooks)
    • pluginy (když není čas ztrácet čas, ale chce to dvakrát měřit než to tam řízneme)
    • a to nehovořím o čase potřebném k zaučení dalšího vývojáře (jsem ve standardizovaném prostředí)
  • AJAX
  • rozšiřitelnost administračního prostředí
  • …

To co na vývojáře zbude jsou poté jen specifické požadavky na funkcionalitu a i mezi nimi se najde spousta těch, pro které WordPress má již hotové řešení (jen je zapnout):

  • různé typy obsahu (custom post types, post formats)
  • vlastní taxonomie (a to nejen pro obsah)
  • rozšiřitelnost a úprava uživatelských práv

Samozřejmě jsou věci, které si vývojářský tým musí napsat sám, ale to je třeba vždy, ať již stavím na WordPressu či nikoli.

Závěrem

Z vlastní zkušenosti platí to, co si z mé přednášky poznamenal Martin Koníček. Během 9 měsíců vývoje webu parade.com jsme byli schopni kompletně* migrovat obsah i uživatele z OpenCMS na WordPress, nasadit vlastní šablonovací systém a na něm nahodit HTML, CSS a bohatý JavaScript. Vyřešit škálovatelnost webu pro tisíce konkurentních návštěvníků a milióny shlédnutí měsíčně. To nad čím trávíme čas jsou věci, které jsou opravdu potřeba k tomu, aby web běžel, rostl a vydělával dle plánu.

* Migrace proběhla v několika vlnách a první část nového webu (obsah typu článek, kategorie, registrace uživatelů) běžely na novém systému již po půl roce práce.

Měření konverzí z Contact Form 7 v Google Analytics

Na tvorbu komerčních webů se stále častěji používá i WordPress, redakční systém určený původně pro blogování. Jedním z nejoblíbenějších pluginů pro tvorbu kontaktních formulářů ve WordPressu je Contact Form 7 a nejoblíbenějším analytickým nástrojem jsou Google Analytics. V tomto článku najdete přesný popis toho, jak měřit splněné cíle, tedy odeslané formuláře pomocí Contact Form 7, […]

Měření konverzí z Contact Form 7 v Google Analytics

POZOR!
V souvislosti s novou verzí Contact Form 7 přestal být návod na této stránce funkční.


StatistikyNa tvorbu komerčních webů se stále častěji používá i WordPress, redakční systém určený původně pro blogování.

Jedním z nejoblíbenějších pluginů pro tvorbu kontaktních formulářů ve WordPressu je Contact Form 7 a nejoblíbenějším analytickým nástrojem jsou Google Analytics.

V tomto článku najdete přesný popis toho, jak měřit splněné cíle, tedy odeslané formuláře pomocí Contact Form 7, v Google Analytics.

Proč konverze měřit

Nenechte se zmást názvem pluginu, s pomocí Contact Form 7 lze vytvářet celkem snadno i rozsáhlejší formuláře, které nemusí sloužit pouze pro rychlou možnost kontaktování návštěvníkem webu, ale stejně dobře i pro odesílání nejrůznějších poptávek, nezávazných objednávek apod.

Při těchto možnostech použití se pak jasně nabízí otázka, jací lidé formulář odesílají, odkud přišli, jak se na webu pohybovali a naopak proč jiní lidé formulář nakonec neodeslali.

Stručně o Contact Form 7

Contact Form 7 je plugin, s jehož pomocí si můžete sestavit vlastní formulář, vložit ho na jakoukoli stránku WordPressu a nechat si vyplněná a odeslaná formulářová pole odesílat buď na jednu e-mailovou adresu, nebo i na více adres. S pomocí pluginu Contact Form DB můžete navíc ta samá data ukládat i do databáze WordPressu.

Stručně o Google Analytics

Tento analytický nástroj od Googlu poskytovaný zdarma, Google Analytics (dále jen GA), umožňuje správci webu zjišťovat informace o návštěvnících, čtenářích či zákaznících. Zásadní pro tento článek je fakt, že s pomocí GA lze zjistit, odkud přišel návštěvník webu, jak se choval, jaké prošel stránky a například jak dlouho na nich byl, než se dostal k odeslání formuláře.

V praxi se měření konverzí, tedy například odeslání objednávek, realizuje vložením kódu na konverzní stránku, tedy typicky na stránku, kam se návštěvník dostane po odeslání formuláře, například na potvrzení odeslání, poděkování za odeslání apod.

Jak měřit konverze z Contact Form 7

V případě tohoto pluginu se ale návštěvník na jinou stránku nepřesouvá a konverzi, tedy odeslání, je potřeba měřit a zaznamenat jako událost.

Poznámka: Jde o výchozí chování Contact Form 7, nicméně i v tomto pluginu lze dodatečným nastavením zařídit, aby se návštěvník po odeslání formuláře přesunul na jakoukoli jinou URL adresu, to však není předmětem tohoto článku.

Začneme tedy vložením příslušného kódu do Contact Form 7.

Vložení kódu do Contact Form 7

Při editování kontaktního formuláře přes odkaz „Kontakt“ v levém menu administrace WordPressu a volbou příslušného formuláře, najděte úplně dole pole pro zadání dalšího nastavení.

Váš kód může vypadat třeba takto:

Konverzní kód v Contact Form 7

Konverzní kód v Contact Form 7

Zde kód pro zkopírování:

on_sent_ok:"_gaq.push(['_trackEvent','objednavka','odeslano']);"

Nastavení v Google Analytics

Odkaz Cíle v GAPochopení kódu poskytne Google Analytic, kde je potřeba nastavit cíl.

V horní nabídce klikněte na odkaz „Správce„.

Na panelu „ZOBRAZENÍ“ pak klikněte na odkaz „Cíle„, jak je vidět na obrázku vlevo.

Dále klikněte na tlačítko „Nový cíl“ a postupujte podle pokynů. Napřed je tedy potřeba zvolit oblast (tržby, akvizice, průzkum..), která záleží na tom, co vlastně s formulářem na webu děláte.

Pro příklad zvolíme například „Tržby„, tedy komerční odeslání objednávky.

Šablony cíle v GA

Šablony cíle v GA

Následuje další krok, v němž si zvolíte název cíle a jeho typ, v případě měření v Contact Form 7 je potřeba vybrat „Událost„.

Volba typu cíle

Volba typu cíle

V dalším kroku „Podrobnosti cíle“ pak vyberete vlastní názvy, které musí být totožné v kódu vloženém do Contact Form 7, tedy v našem případě na obrázku výše bude nastavení vypadat takto:

Nastavení události v GA

Nastavení události v GA

Jak je na obrázku vidět, ve spodní části lze nastavit hodnotu takové události, kterou pak uvidíte v přehledech a snadněji si tak spočítáte, jakou hodnotu má například konkrétní zdroj návštěvníků, kteří odesílají objednávky.

Čeština pro WordPress 3.8.1

První opravná verze v podobě WordPressu 3.8.1 sice vyšla už před dvěma týdny a dnes ji následuje i oficiální čeština, a to zejména kvůli trochu nečekaným problémům (aneb automatické aktualizace lokalizovaných verzí ještě nefungují zcela ideálně). Při té příležitosti byly doplněny některé další přeložené řetězce, zejména informační emaily o proběhlých aktualizacích. Zajímavé pro nás bude asi […]

WordCamp Praha 2014

Dne 22. února 2014 se v Praze uskuteční první konference věnovaná redakčnímu systému WordPress. Konference nese název WordCamp Praha 2014 a je povolená a registrovaná centrálou WordCamp z USA. Česká republika se tak zařadí do seznamu 172 měst napříč 48 státy, kde se již WordCamp konal. Konference bude rozdělena do dvou sérií přednášek, kde první série nazvaná „Uživatelé“ […]

Twitter oEmbed not working in WordPress

On January 14th 2014 Twitter updated it’s API to force SSL on requests. This caused Twitter oEmbed API to not work in WordPress.

Despite there’s already a fix to this issue in trac you might want to fix this before an official update get’s live.

If so, here’s a snippet which you add to your functions.php ( originally published on github ) :

add_filter( 'oembed_providers', 'oembed_fix_twitter', 10, 1 );

function oembed_fix_twitter( $providers = array() ){
        $providers[ '#https?://(www.)?twitter.com/.+?/status(es)?/.*#i' ] = array( 'https://api.twitter.com/1/statuses/oembed.{format}', true );
        return $providers;
}

Note: You might have to update all posts where oEmbed failed previously (most like posts published since Jan 14th 2014 till today) as oEmbeds are being cached in post_meta table per post.

This fix is brought to you by Parade dev team.

Twitter oEmbed not working in WordPress

On January 14th 2014 Twitter updated it’s API to force SSL on requests. This caused Twitter oEmbed API to not work in WordPress.

Despite there’s already a fix to this issue in trac you might want to fix this before an official update get’s live.

If so, here’s a snippet which you add to your functions.php ( originally published on github ) :

add_filter( 'oembed_providers', 'oembed_fix_twitter', 10, 1 );

function oembed_fix_twitter( $providers = array() ){
        $providers[ '#https?://(www.)?twitter.com/.+?/status(es)?/.*#i' ] = array( 'https://api.twitter.com/1/statuses/oembed.{format}', true );
        return $providers;
}

Note: You might have to update all posts where oEmbed failed previously (most like posts published since Jan 14th 2014 till today) as oEmbeds are being cached in post_meta table per post.

This fix is brought to you by Parade dev team.

Čeština pro WordPress 3.8

Čeština pro WordPress 3.8 vychází necelý měsíc po anglické verzi a není sice ještě zcela kompletní, ale běžný uživatel si anglických řetězců ani nevšimne (zejména jde o nápovědu). Čeština pro WordPress 3.8 obsahuje mnoho nově přeložených řetězců a také některé změny. S překladem pomáhalo několik uživatelů (Díky!), kteří by měli být uvedeni na informační stránce přímo v […]