Taxonomie ve WordPressu

WordPress databáze

Taxonomie je to, co povznáší WordPress nad úroveň běžného blogovacího nástroje a řadí ho mezi redakční systémy. Ale jak se ukládá v databázi? Taxonomie a položky jsou skvělé vlastnosti WordPressu, které vašim stránkám přidávají větší flexibilitu. Týkají se dvou typů obsahu: příspěvků a odkazů. V databázové struktuře je mezi nimi vztah 1:n. Jeden příspěvek může být propojen s několika položkami v několika taxonomiích a jedna položka může být přiřazena k několika příspěvkům nebo odkazům. V této sérii článků se zabýváme různými aspekty WordPress databáze. Celá série bude mít osm částí: Úvod Vztahy mezi daty Typy dat Uživatelská data Metadata Taxonomie, rubriky, štítky a položky Tabulka Options WordPress Multisite data Začněme definicí, protože pojem taxonomie a položka může být ve spojením velmi matoucí. Definice Taxonomie Taxonomie je systém kategorizace a třídění věcí, obvykle hierarchicky. Nejznámější taxonomií je ta, kterou vytvořil Carl Linné a slouží ke třídění živých organismů. Ve WordPressu slouží taxonomie pro klasifikování vašich dat a jejich seskupení do skupin a podskupin. WordPress obsahuje tři zabudované taxonomie: rubriky štítky rubriky odkazů Rubriky a štítky jsou podobné příspěvkům a stránkám. Jedná se o stejný typ obsahu (taxonomie), ale ve výchozím nastavení se chovají rozdílně v tom, že rubriky mají hierarchickou strukturu a štítky ne. Taxonomie u rubrik odkazů pracuje podobně jako štítky a může být teoreticky použita pro jakýkoliv typ objektu, nicméně ve výchozím nastavení se nezobrazuje a musí být nejprve aktivována. Pomocí vlastních taxonomií můžete do WordPressu můžete přidat tolik dalších taxonomií, kolik jen chcete. Jejich chování poté bude podobné rubrikám a štítkům. Vlastní taxonomie budou mít položky. Všechny vaše taxonomie budou mít stejný status, jako ostatní zabudované taxonomie. Je to podobné, jako když vytváříte vlastní typy příspěvků. Položky Každá taxonomie má položky, aby se daly třídit data. Rubrika je pouze položka v taxonomii rubrik a štítek je pouze položka v taxonomii štítků. Když vytvoříte vlastní taxonomie, musíte poté pro ni vytvořit položky. To můžete udělat přes WordPress administraci nebo použitím funkce wp_insert_term(). Položky mohou být skvělé v kombinaci s vlastními dotazy. Například s nimi můžete vytvářet vlastní šablony, kde budete zobrazovat příspěvky s několika položkami, které se dají podle nich třídit. Jak WordPress ukládá taxonomie a položky Jak jsme si již řekli v předchozích dílech seriálu, WordPress používá vztah m:n. Tento vztah je vytvořen za použití tří tabulek: wp_term_relationships wp_term_taxonomy wp_terms Tyto tabulky jsou společně s propojenými tabulkami wp_post a wp_links zobrazeny níže: Pojďme se podívat na to, jak každá tabulka funguje. Tabulka wp_terms Tabulka wp_terms ukládá všechny jednotlivé položky pro rubriky, štítky, rubriky odkazů a vlastní taxonomie. Má čtyři pole: term_id je unikátní identifikátor name (jméno) slug term_group je pole, které WordPress v současné době nevyužívá a tak jej můžete klidně ignorovat Tabulka wp_term_taxonomy Tabulka wp_term_taxonomy ukládá další data o položkách a taxonomiích. Má šest polí: term_taxonomy_id je unikátní identifikátor term_id představuje unikátní identifikátor položky (z tabulky wp_terms), která je propojena s tímto záznamem taxonomy je jméno taxonomie, kam položka spadá description (popis) parent odkazuje na nadřazenou položku, pokud má taxonomie hierarchickou strukturu a existuje nadřazená položka count počet příspěvků v položce Ve spoustě WordPress instalací bude jeden záznam v tabulce wp_term_taxonomy pro stejnou položku v tabulce wp_terms, ale může se stát, že zde budete mít více než jen jeden záznam pro každou položku. To se může stát v případě, že vytvoříte dvě položky se stejným jménem, ale rozdílným slugem. To znamená, že vztah mezi těmito tabulkami je 1:n. Jeden záznam v tabulce wp_term může být propojen s několika záznamy v tabulce wp_term_taxonomy, ale každý záznam v tabulce wp_term_taxonomy je propojen pouze s jedním záznamem v tabulce wp_terms. Tabulka wp_term_relationships Tabulka wp_term_relationships je nezbytná pro tvorbu vztahu m:n mezi objekty a položkami. Má pouze tři pole: object_id je propojen s post_id v tabulce wp_posts nebo link_id v tabulce wp_links term_taxonomy_id je propojen se stejným polem v tabulce wp_term_taxonomy term_order je pořadí, ve kterám byla položka přiřazena k objektu. Toto se používá pouze, pokud specifikujete řadící argument, když registrujete taxonomie. Ve výchozím nastavení je tato funkce vypnutá a pole má hodnotu 0. Protože každý objekt a položka může souviset s několika záznamy v tublce wp_term_relationships, je zde vytvořen vztah m:n. Shrnutí Vztah mezi objekty (například příspěvky a odkazy) a položkami je unikátní, a nejen protože je to jediný m:n vztah ve WordPressu. Pochopením, jak tento vztah funguje a kde jsou data uložena, vám pomůže pochopit, jak taxonomie a položky pracují a jak správně použít funkce, které s nimi souvisí.

Jak změnit uživatelské jméno admin

Bezpečnost

Uživatelské jméno admin je, jak jsme psali už v článku 7 chyb, kterých byste se měli při používání WordPressu vyvarovat, velkým bezpečnostním rizikem. Pokud na webu máte uživatelské jméno admin, ulehčíte práci hackerum, kterým pak stačí uhodnout pouze heslo. WordPress ve výchozím nastavení nedovoluje změnit uživatelské jméno, a proto to musíte udělat přes phpMyAdmin, anebo pomocí pluginu, například WPVN – Username Changer. V tomto článku si ukážeme více uživatelsky přívětivý způsob změny uživatelského jména admin, a to pomocí pluginu WPVN – Username Changer. Plugin si můžete zdarma stáhnout nebo přímo nainstalovat do WordPressu z oficiálního repozitáře. Po jeho aktivaci se vám pod položku Uživatelé přidá sekce Change Username. Pokud si stránku zobrazíte, najdete zde dvě sekce. V první můžete změnit vaše uživatelské jméno. Zde stačí pouze zadat nové a kliknout na tlačítko Save changes. Druhá sekce poté umožňuje změnu uživatelského jména i jiným uživatelům ve WordPressu. Zde můžete nastavit, jakou minimální rolí musí disponovat uživatel, aby si mohl změnit uživatelské jméno. Jestliže plugin potřebujete jen ke změně uživatelského jména admin, pak ho po změně můžete klidně deaktivovat a smazat.  

Proč nepoužívat Disqus pro komentáře?

Komentářový systém Disqus začíná být mezi uživateli (a to nejen WordPressu) docela oblíbený, ale jeho použití bohužel přináší i některá rizika. Jednoduchých řešení v podobě externí služby pro komentáře existuje mnohem více, zmínil bych ještě např. Livefyre, Facebook či IntenseDebate, což je mimochodem produkt, kde se angažovala přímo společnost Automattic (aneb provozovatel WordPress.com a sponzor vývoje […]

Tip na plugin: Filenames to latin

Filenames to latin

Možná se vám někdy stalo, že jste přesouvali web a některé obrázky nebo jiné nahrané soubory, které měli v názvu české znaky se špatně zkopírovali. Aby se toto nestalo tak stačí do WordPressu nainstalovat plugin Filenames to latin, který upraví jména nahrávaných souborů. Jak to funguje v praxi? Pokud budete nahrávat soubor sluníčko.png plugin jeho název upraví na slunicko.png. Jednoduché že? Nicméně velmi užitečné. Plugin si zdarma můžete stáhnout z oficiálního repozitáře a po aktivaci nevyžaduje žádné další nastavení. Kromě českých znaků plugin upravuje také jména souborů napsaných v cyrilice, němčině, francouzštině, polštině, španělštině, maďarštině, řečtině, švédštině. Kromě speciálních znaků plugin také automaticky mění velká písmena za malá. Seznam znaků, které plugin Filenames to latin upravuje а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ь ю я ґ є і ї ё ы ъ э ў ą ć ę ł ń ó ś ź ż à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö × ø ù ú û ü ý þ ÿ ß ő ű ě š č ř ž ý á é ď ť ň ú ů α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω ά έ ή ί ό ύ ώ ς ΐ ϊ ϋ ΰ.

Jak se vyvíjelo administrační rozhraní WordPressu

WordPress 2.6 “Tyner”

Posledních několik let je WordPress na stále rostoucí křivce. Celá komunita WordPressu se neustále rozrůstá a tak jsem vytvořil tento článek, abyste viděli, jak to všechno začalo. Jestliže se chcete o historii dovědět více, pokračujte na článek Podrobná historie WordPressu. Dnes se podíváme na to, jak moc se změnilo administrační rozhraní WordPressu od prvního vydání z 27. května 2003, kdy Matt Mullenweg vypustil do světa WordPress 0.7 “Gold”. Nicméně příběh začíná 6. dubna 2003, kdy Matt pozval celý svět. Zde je úryvek z jeho blogu: Vítejte na dev blogu WordPressu. Tento blog je již na WordPressu spuštěn a bude informovat o tom, co se vyvíjí. Představte si, že je to takový changelog s komentáři, odkazy, archivem… – Matt Mullenveg Tento příspěvek byl zveřejněn 6. dubna a Matt ho aktualizoval až do 27. května (oficiální datum vydání WordPressu 0.7). Mezi 6. dubnem a 27. květnem Matt pokračoval v úpravách WordPressu a přidal funkce jako komentáře nebo styly a také odstranil chyby, které bránili v dalším vývoji. Vše šlo dobře a 22. květva byl Matt už “So Close“. 27. května poté konečně vyšel WordPress. Jak vypadala WordPress administrace od verze 0.7 do současnosti 27.květen 2003 – WordPress 0.7 “Gold” 3.leden 2004 – WordPress 1.0 22.květen 2004 – WordPress 1.2 “Mingus” 17.únor 2005 – WordPress 1.5 “Strayhorn” 31.prosinec 2005 – WordPress 2.0 “Duke” 22.leden 2007 – WordPress 2.1 “Ella” 16.květen 2007 – WordPress 2.2 “Getz” 25.září 2007 – WordPress 2.3 “Dexter” 29.březen 2008 – WordPress 2.5 “Brecker” 15.červenec 2008 – WordPress 2.6 “Tyner” 11.prosince 2008 – WordPress 2.7 “Coltrane” 11.červen 2009 – WordPress 2.8 “Baker” 19.prosinec 2009 – WordPress 2.9 “Carmen” 17.červen 2010 – WordPress 3.0 “Thelonious” 23.únor 2011 – WordPress 3.1 Reinhardt” 12.květen 2011 – WordPress 3.2 Beta 1 4.červenec 2011 – WordPress 3.2 “Gershwin” 12.prosince 2011 – WordPress 3.3 “Sonny” 13.červen 2012 – WordPress 3.4 “Green” 11.prosinec 2012 – WordPress 3.5 “Elvin” 1.srpen 2013 – WordPress 3.6 “Oscar” 24.říjen 2013 – WordPress 3.7 “Basie” 12.prosinec 2013 – WordPress 3.8 “Parker” 16.duben 2012 – WordPress 3.9 “Smith” 4.září 2014 – WordPress 4.0“Benny” Na jaké verzi WordPressu jste začínali? My na 2.7 “Coltrane” z 11.prosince 2008.

Jak zrychlit načítání odvozené šablony?

Odvozené šablony (child themes) by se měly v dnešní době už používat pro každou složitější úpravu šablon, protože tímto způsobem snadno zabráníte případnému přepsání provedených změn při automatické aktualizaci. Drobnou změnou je ale možné načítání odvozené šablony urychlit. Pokud pomineme drobné úpravy kaskádových stylů (např. pomocí pluginu Simple Custom CSS) přímo v rodičovské šabloně, tak existují […]

Metadata ve WordPressu

WordPress databáze

Prozatím jsme se v sérii zaměřili na typy obsahu ve WordPressu. Ale co další data u obsahu? Těmto datům říkáme metadata. Tento článek je součástí série osmi částí: Úvod Vztahy mezi daty Typy dat Uživatelská data Metadata Taxonomie, rubriky, štítky a položky Tabulka Options WordPress Multisite data Jak jsme si již řekli v předchozích článcích, WordPress má čtyři typy obsahu, které jsou uloženy ve čtyrech tabulkách databáze: příspěvky (posts) uživatelé (users) komentáře (comments) odkazy (links) První tři mohou mít k sobě přiřazené dodatečná metadata. Metadata se ukládají do vlastních tabulek v databázi. Co jsou to metadata? Metadata jsou vlastně data o datech. Wikipedie popisuje metadata takto: Metadata jsou strukturovaná data o datech. Příkladem je katalogizační lístek v knihovně, obsahující data o původu a umístění knihy: jsou to data o datech v knize, uložená na katalogizačním lístku. Metadata mohou sloužit např. k snadnému vyhledávání knih. Definovat rozdíl mezi daty a metadaty u WordPressu je poměrně těžké. Ani rozdělení pomocí uložení v databázi nepomůže. Například: U příspěvků je post_type příklad metadat, ale je uložen v tabulce wp_posts. Taxonomie, rubriky a štítky by se mohli považovat za metadata, ale uloženy jsou odděleně ve vlastní tabulce. Metadata příspěvků, jako například uživatelská pole a dodatečná metadata přidaná pluginy, jsou uložena v tabulce wp_postmeta, tedy tam kde je očekáváte. Takže je jednoduší přemýšlet nad metadaty WordPressu ne z přísného pohledu definice, ale z informace, že metadata jsou uložena ve třech tabulkách. Tabulky s metadaty WordPress využívá tři tabulky pro ukládání metadat: wp_postmeta obsahuje metadata o příspěvcích (včetně příloh, položek menu a revizí) wp_commentmeta obsahuje metadata o komentářích wp_usermeta obsahuje metadata o uživatelích Pouze odkazy nemají tabulku pro metadata. Tabulky metadat jsou všechny takřka identické a mají pouze čtyři pole: ID je unikátní identifikátor příspěvku, uživatele nebo komentáře, ke kterému metadata patří Meta ID je unikátní identifikátor záznamu Key je meta klíč (který je často duplicitně obsažen mezi různými záznamy) Value je meta hodnota (která bývá jedinečná) WordPress může použít tuto strukturu k uložení velkého množství metadat. To znamená, že funkce, které použijete k zobrazení a dotazu metadat u příspěvků, uživatelů a komentářů jsou velmi podobné. Metadata uložená WordPressem Metadata uložená individuální instalací WordPressu se odlišují od jiné instalace, je to dáno především tím, že pluginy a šablony si mohou vytvářet svá vlastní metadata, a protože některé stránky potřebují mít definované specifická metadata, kdežto jiné ne. Podívejme se na některé běžnější typy metadat: Uživatelská pole – vztahují se k příspěvkům, a proto jsou uložena v tabulce wp_postmeta. Můžete je použít pomocí boxu Uživatelská pole, který naleznete na stránce, kde upravujte příspěvek. Tento způsob se může hodit, když chcete, aby uživatelé byly schopni přidat metadata ke specifickým příspěvkům. Uživatelská metadata – v tabulce wp_usermeta jsou uložena metadata o většině uživatelích, jejich rolích, schopnostech, nastavení administrace a dokonce jméně a příjmení. Metadata přidané pluginy a šablonami – pluginy s funkcí pro komentáře (například Akismet) přidají metadata do tabulky wp_commentmeta, zatímco pluginy, které přidávají metadata k příspěvkům (například SEO pluginy), přidají záznamy do tabulky wp_postmeta. Teoreticky byste mohli přidat metadata pomocí šablony, nicméně více dává smysl k tomu využít pluginy, protože to více souvisí k funkcionalitě než ke vzhledu. Samozřejmě nejste omezeni pouze na tyto typy. Ve skutečnosti, jakékoliv data o příspěvcích, komentářích nebo uživatelích, která nemohou být uložena v jejich hlavní databázové tabulce jsou uložena v příbuzné tabulce metadat. Pokud přidáváte nové pole pro ukládání dat, měli byste vždy využít těchto tabulek namísto těch hlavních. Přístup a výstup metadat WordPress má Metadata API, které využíváte pro přidání, změnu nebo mazání metadat. Je zde velké množství funkcí specifických pro každý typ metadat. Funkce můžete využít pro výstup metadat ve vaší šabloně. Měli byste využít tyto namísto jiných obecných funkcí metadat. Funkce pro Metadata API  jsou pro každý typ obsahu velmi podobné a má stejné parametry: Tyto funkce by měli být použity ve vaší šabloně a pluginách. Například v šabloně příspěvku (posts.php) můžete použít následující výstup metadat: [crayon-547a02241f11d144618893/] Toto je jeden velmi jednoduchý způsob jak získat výstup z metadat. Je zde mnoho dalších způsobů, z nichž některé si ukážeme později v dalším článku série. Shrnutí WordPress používá tři tabulky metadat pro ukládání dat o třech typech obsahu: příspěvcích, uživatelích a komentářích. Tyto tabulky jsou použity pro všechno ostatní, co by se nemělo ukládat do hlavních tabulek wp_posts, wp users a wp comments. Do tabulek určených pro metadata byste měli přidávat nové pole, které vytváříte za pomocí šablon nebo pluginů. Všechny tři tabulky metadat fungují skoro identicky a mají velmi podobné funkce pomocí níž přidáváte, aktualizujete, mažete nebo získáváte metadata.

Jak změnit velikost písma ve vizuálním editoru

Změna velikosti písma

Když píšete obsah ve vizuálním editoru, může se vám zdát, že je velikost písma moc malá a text se vám čte špatně. Některé šablony mají ve vizuálním editoru nastavené malé písmo a pokud se neorientujete v CSS, tak jste na mrtvém bodě. Naštěstí se však objevil nový plugin, díky kterému lze velmi snadno nastavovat velikost písma ve vizuálním editoru. Plugin se jmenuje Visual Editor Font Size a je zdarma ke stažení z WordPress repozitáře. Autorem pluginu je Nikolay Bachiyski. Plugin přidá na stránku s vizuálním editorem meta box, kterým můžete ovlivnit velikost písma. Po instalaci pluginu se nezapomeňte zkontrolovat v Nastavení zobrazených informací, že je box aktivován. Ovládání je velmi jednoduché a pomocí tlačítek plus a mínus text zmenšujete nebo zvětšujete. I když plugin funguje skvěle, možná by bylo lepší pokud by bylo ovládání velikosti písma v horní liště vizuálního editoru.

Upravte stránku nebo příspěvek jednoduše pomocí Slash Edit

Slash Edit

Jestliže nejste příznivcem admin baru a máte ho vypnutý, tak možná postrádáte rychlý způsob jak se dostat k úpravě stávajícího příspěvku nebo stránky. Pokud je tomu tak, máme pro vás tip na nový pluginy nazvaný Slash Edit. Plugin je velmi jednoduchý a dělá pouze to, že když za URL příspěvku nebo stránky napíšete  /edit, tak se vám otevře vizuální editor. Edit můžete psát za URL adresu: Stránek Příspěvků Vlastní typů příspěvků Stránek autora a dalších stránek taxonomie (štítky, rubriky) Jestliže nejste přihlášeni, budete při dopsání /edit přesměrováni na přihlašovací formulář. Plugin jsem testoval na stránce, kde je nainstalován WordPress 4.0 a fungoval skvěle. Plugin je ke stažení zdarma z oficiálního repozitáře.

Úprava výpisu menu

HTML

Může se Vám stát že budete potřebovat změnit výpis menu v šabloně. Například můžete chtít aby před výpisem menu bylo slovo “Menu:”. Osobně jsem to napříkad použil k tomu abych do menu umístit span na který když kliknete tak pomocí JavaScriptu sjedete ke kontaktnímu formuláři. Menu upravíme tím že do příkazu pro výpis vložíme parametr items_wrap. Základní item-wrap vypadá takto <ul id=“%1$s“ class=“%2$s“>%3$s</ul> Naše menu se vloží místo %3$s. Pokud budete tedy potřebovat vložit slovo “Menu” před výpis tak to můžete udělat takto. <ul id=“%1$s“ class=“%2$s“><li id=“naše_položka“ class=“náš_styl“>Menu:</li>%3$s</ul> Použitím hototo výpisu docílíme toho že před seznam odkazů se nám vloží ještě položka se slovem “Menu:”. Celý zápis bude tedy vypadat wp_nav_menu( array(‚theme_location‘ => ‚primary-menu‘, ‚items_wrap‘ => ‚<ul id=“%1$s“ class=“%2$s“><li id=“naše_položka“ class=“náš_styl“>Menu:</li>%3$s</ul>‘ ) ;