cs en cs en en da en en de cs cs cs cs en cs cs cs cs cs en cs cs en cs cs cs en cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs cs en cs cs en cs cs cs cs cs en en en cs cs cs cs cs cs it cs cs cs en en cs en de en en cs en de en it en it en it en it cs it en it en it oc it cs cs cs en en en en en sv cs cs oc cs cs cs cs cs cs cs cs cs cs cs es tr cv en cs cs es de cs en en en cs en en en en cs en en cs hbs_lat en en en en en en en en en fa en en en en en en en en en en en en en en en en en en en en en en en cs
První verze webu měla již nejlepší léta za sebou, tedy lépe řečeno, její grafický design. V současné době totiž dochází ze strany vyhledávačů k penalizaci pro weby nepodporující mobilní zařízení. A to je problém, pokud cílíte na určitá klíčová slova a chcete obsadit přední pozice. Nebyl tedy důvod update již dále odkládat.
Původně web běžel na WordPressu a jako alternativní řešení jsem zvažoval použití ForkCms. To je také uvolněno pod Opensource licencí a je postaveno na Symfony 3.4. To je ideální volba pro aplikace otevřené dalšímu vývoji, jelikož je tato platforma velmi rozšířená a jsou pro ni dotupná další hotová řešení. Nicméně pro potřeby tohoto webu do budoucna s dalším rozšiřováním funkcionalit nepočítám a současná pro tvorbu obsahu plně vyhovuje. Rozhodnutím tedy bylo zůstat nadále na paltformě WordPress. Dalším neméně důležitým motivem je také udělat si představu o současném stavu tohoto projektu, celého ekosystému pluginů a směřování jeho dalšího vývoje.
Nová responzivní šablona postavená na frameworku bootstrap
Definice vlastní taxonomie pro vkládání obsahu portfolia
Update aplikace a pluginů, aby jej bylo možné provozovat na nejnovější verzi PHP 7.3
Celková optimalizace webu, aby vše fungovalo korektně
Návrh nové šablony se ukázal být větším problémem, než jsem původně očekával. Mám totiž dosti specifické představy o designu a funkčnosti webu. Přestože jsem prošel desítky jak volně dostupných, tak i placených šablon, žádnou vyhovující mým potřebám jsem nenašel. Drtivá většina se jich totiž primárně zaměřuje na design, čímž je jejich použitelnost pro tvorbu různorodého obsahu velmi limitující. Primárně se zaměřuji na jednoduchý design a přehlednost, v tomto směru mi vyhovuje rozmístnění prvků ve stylu starších webů, kdy je menu vpravo a obsah vlevo. Uživatel tak vidí, kde se v rámci struktury webu právě nachází. Tohoto konceptu jsem se tedy držel i nadále.
Definice vlastní taxonomie pro vkládání obsahu portfolia
Původně nebylo možné používat vlastní taxonomii a řešením pro tvorbu obsahu portfolia bylo využití tagování příspěvků, pomocí něhož lze obsah rozdělit prakticky libovolně. Při editaci ale docházelo ke smísení všech přípěvků a nebylo to zkrátka příliš pohodlné, ani přehledné. Pohodlnější je vytvořit samostatnou entitu Portfolio a tu pak spravovat z jiného místa. Navíc je možné vytvořit pro každou entitu různé typy polí a editace je tak značně jednodušší.
Základem řešení se stal plugin Portfolio Post Type, ten jsem si upravil podle potřeby a pak již jen stačilo vytvořit šablonu, kde se data zobrazují zákazníkům.
Update aplikace a pluginů, aby jej bylo možné provozovat na nejnovější verzi PHP 7.3
Tady se již začalo pomalu ukazovat, jak se WordPress liší od jiných řešení. Jelikož se jedná o velmi rozšířenou aplikaci, existuje velké množství zranitelností, které se útočníci snaží využít k ovládnutí webu, případně samotného serveru, na kterém běží. Je tedy velmi důležité udržovat WordPress aktualizovaný. To je ale pouze první část problému. Ve výsledné verzi používám desítky další pluginů, které je nutné také udržovat aktuální, což může na první pohled znít triviálně, ale při výběru pluginů je nutné toto vzít také v potaz a dobře vybírat. Některé z nich se již totiž přestaly dále vyvíjet, nebo se například z volně dostupného řešení stalo placené. Primárně jsem se zaměřil na volně dostupné řešení a nutno říci, že to je stále možné, i když za cenu určitých znalostí. Tento web žádné placené řešení nepoužívá, lze je tedy možné získat zdarma.
Seznam použitých modulů, které doporučuji:
Add Categories to Pages – přidá podporu kategorií a tagů pro stránky
Admin Favicon – zobrazí favicon z frontendu i pro administraci
Advanced Categories Widget – výborný widget, který slouží pro zobrazování kategorií
Advanced Database Cleaner – slouží pro optimalizaci databáze a mazání nevyužitého obsahu (revizí, konceptů)
AVH Extended Categories Widgets – další widget pro zobrazování kategoríí
Balíček All In One SEO – nutné pro SEO každého webu
Bootstrap for Contact Form 7 – pro vytvoření kontaktního formuláře kompatibilním s bootstrap frameworkem
Breadcrumb NavXT – vytváří drobečkovou navigaci pro usnadnění orientace v obsahu webu
Broken Link Checker – informuje správce webu o neplatných odkazech
Comet Cache – aby Váš web byl rychlý a server se příli nezapotil, vytvoří cache s vyrenderovaným obsahem
Contact Form 7 – kontaktní nebo jakýkoliv další formulář pro uživatele
Contact Form CFDB7 – uloží požadavek z formuláře do databáze
Custom Link Widget – widget pro vytváření vlastních linků
Custom Post Type Permalinks – lze si nastavit vlastní přepis url pro taxonomii
Dagon Design Sitemap Generator – vytvoření sitemapy webu, již se dále nevyvíjí, musel jsem si jej upravit sám
Disable XML-RPC – vypnuto z důvodu nepoužívání této funkcionality
Disable XML-RPC Pingback – z bezpečnostích důvodů také vypnuto
Download Monitor  – pro download souborů na webu
Duplicate Post – pro duplikaci obsahu, není nutné tedy věci opakovaně klikat vždy znovu
Easy Updates Manager – správa updatování WordPressu a pluginů, lze si nastavit podle požadavků
Fast Velocity Minify – slouží pro minifikaci css a js, nutné pro zvýšení výkonu webu
Flexi Pages Widget – widget, který zobrazuje stránky, které patří ve stromu k dané hierarchii
Forty Four – 404 Plugin for WordPress – zobrazuje vlastní grafiku a text při zobrazení stránky 404
GDPR Cookie Consent Banner – zobrazuje banner upozorňující na použití cookies
Google XML Sitemaps – vytváří xml mapu webu pro vyhledávače
Growmap Anti Spambot Plugin – ochrana před spamem na formuláři pro komentáře, již se dále nevyvíjí, upraveno svépomocí
Head Cleaner – vyčistí html hlavičky od zbytečných tagů, velmi dobré řešení. Nicméně se již dále nevyvíjí, bylo nutné jej upravit
Klasický editor – WordPress od verze 5 použivá nový editor Gutenberg. Obsah tvořím klasicky, nepotřebuji jej
Login LockDown – bezpečnostní opatření, kdy se roboti zkouší opakovaně hádat heslo do adminsitrace
Microkid’s Related Posts – výborné rozšíření, pomocí kterého vložité k obsahu další související články, nevyvíjí se, bylo nutné upravit
My Page Order – pro vlastní řazení stránek
NextGEN Gallery – vytváří galerie obrázků
Page Tagger – slouží k tagování stránek
Portfolio Post Type – pro vytvoření Portfolia v administraci
Redirection – slouží k přesměřování uvnitř webu, když dojde například k přesunu stránek, důležité pro SEO
Relevanssi – pro lepší vyhledávání
Simple Social Buttons – zobrazuje tlačítka pro sociální sítě
SyntaxHighlighter Evolved – zvýrazňuje a formátuje text pro různé programovací jazyky
WP Comment Policy Checkbox – souhlas se zpracováním osobních údajů pro formulář komentářů
WP GDPR Compliance – slouží pro přehled a správu osobních údajů zpracovávaných na webu
WP-PageNavi – pro lepší stránkování napříč webem
WPS Hide Login – lze uživatelsky nastavit url adresu pro přístup pro přihlášení do administrace, důležité pro bezpečnost webu
Zalomení – zalamuje text na webu podle pravidel českého jazyka
Jak je uvedeno u některých pluginů, již se dále nevyvíjí a kompatibilita s PHP 7.3 by bez zásahu nebyla možná. To se samozřejmě může stát kdykoliv s jakýmkoliv dalším ze seznamu, o který se tvůrce z nějakého důvodu přestane starat. Tady se přechod časově značně protáhl, protože bylo nutné řešit velké množství nekompatibilit s novou verzí jazyka.
Celková optimalizace webu, aby vše fungovalo korektně
Opět to může znít jako jednoduchý úkol, ale pokud použijete vetší množství modulů, může se stát a také se to děje, že se pluginy navzájem ovlivňují a některé přestanou fungovat, případně nefungují korektně. Zejména se to děje při zapínání minifikace css a js, kdy některé pluginy nefungují díky chybně načtenému javascriptovému kódu. Je pak nutné dělat různé optimalizace a hledat ty části kódu, které tyto chyby způsobují. Také se mi stalo, že mi přestal fungovat kontaktní formulář na mobilních zařízeních. Příčinou se ukázalo být vypnutí WP REST API, které tento formulář používal. Na PC formulář fungoval korektně. Je tedy nutné na toto pamatovat a být opatrný při dalších úpravách.
Několik slov na závěr
Přechod se nakonec podařil, ale časová investice byla značně vyšší, než jsem původně očekával. Ukázalo se, že zatímco při psaní vlastního webu na ForkCms bych si musel spoustu věcí vytvořit sám, tady jsem naopak musel řešit problémy spojené s tím, aby části hotového kódu, alespoň nějakým způsobem, spolu fungovaly jako jedna aplikace. Zdaleka největší problém však vidím v tom, že jakákoliv změna v aplikaci může způsobit znefunkčnění některé části webu a to bez toho, abych to jako správce webu vůbec zaznamenal. Web se sice tváří, že funguje, ale zmizí například widget, nějaká část textu vkládáná z pluginu ap. Před několika měsící mi zmizelo veškeré nastavení SEO na celém webu. Musel jsem modul přeinstalovat a provést nastavení znovu. Pokud tedy chcete stabilní web, není to dobré řešení, zvláště pak, máte-li zapnuty automatické aktualizace. V případě jejich vypnutí se ale zase vystavujete bezpečnostímu riziku, což také není ideální.
Na nepříliš kritické a jednoduché weby se stále jedná o dobré a celkem jednoduche řešení. Kvalita pluginů se mi subjektivně zdá, že trochu upadá a i po analýze zdrojových kódů je znát, že složitější pluginy již moc dostuné volně nejsou. Pak je nutné si připlatit, případně si věci řešit ve vlastní režii
Pokud jste dočetli článek až sem a myslíte to se svým projektem alespoň trochu vážně, chcete spolehlivost a otevřené možnosti vývoje v budoucnosti, nemáte již dále nad čím přemýšlet. WordPress má jasné limity a nezbývá, než se podívat po něčem robustnějším. Tady bych jednoznačně doporučil ForkCms, ale o něm si řekneme někdy příště.
Tweet 0 Tweet 0 Share 0 Share reddit 0 Email
Blog, Development, Wordpress Wordpress. permalink.
Composer a problémy s pamětí
Přišel čas upgradovat váš Prestashop
Napsat komentář Zrušit odpověď na komentář
Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *
Četl jsem a souhlasím se zněním Zásady ochrany osobních údajů *
Ukázka použití našich modulů
BalíkobotBezpečnostBoltCmsFlexibeeForkCmsKonektorPHP 7Prestashop 1.4Prestashop 1.5Prestashop 1.6Prestashop 1.7RestApiSymfonyUloženkaWordpressZásilkovnaZranitelnosti
+420 723 335 396
Poslední příspěvky do blogu
Zranitelnost pomocí malwaru XsamXadoo bot
Přišel čas upgradovat váš Prestashop
Update webu UniqueWeb.cz na WordPressu
Composer a problémy s pamětí
Pohybujeme se v prostředí open source aplikací jako jsou Prestashop, Wordpress, ForkCMS, Nette, Symfony a spousty dalších. Máme více než 14 let zkušeností s vývojem modulů a aplikací na míru.
Vyvíjíme propojení přes RestApi rozhraní pro účetní program Flexibee. Jedná se o obousměrnou komunikaci pro automatický přenos dat mezi dvěma systémy.
Realizované projekty najdete v našem portfoliu.
Zásady ochrany osobních údajů
© 2008 - 2022 UniqueWeb.cz | Lukáš Krchňák
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.