Jak na strukturovaná data

Ernst
13. lis 2018 19:28 #137666
Snažím se trochu více zorientovat v mikrodatech.

Chápu co dělají a k čemu slouží.
Umím je testovat na https://search.google.com/structured-data/testing-tool .
Pročetl jsem si rozšíření https://www.tassos.gr/joomla-extensions/google-structured-data-markup
Našel jsem si k tomu dobrý článek https://schema.org/docs/gs.html

chápu zadání hodnot pomocí itemscope a itemprop (třeba v šabloně K2), ale nejsem si schopen propojit, jaká data a s jakou hlavičkou tam mám uvést, zda mají nějakou strukturu nebo je to celkem jedno, kolik a čeho tam uvedu.

Můžete mě někdo nakopnout?

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
13. lis 2018 20:14 #137670
Začal jsem si to testovat na příkladu itemu K2 - https://github.com/kricore/Advanced-templating-with-K2/blob/master/default/item.php#L1
Je to upravený výpis položky K2 s vytvořením rich snippets.

Našel jsem i klíčová slova, která se mají/mohou použít. Je to v návaznosti na použité schéma https://schema.org/Article .
Tak si v tom zdroji provádím změny a testuji jak se to chová test

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Rudolf Baláš
13. lis 2018 20:50 #137673
> pleteš se v nové verzi je to již i pro vybrané kategorie viz.

Ani tohle mi nevyhovuje. Já prostě používám typ článku

- recept
- faq
- testimonial
- článek
- poradna

a nechci být limitovaný na kategorii.

co se týká informací jak co a jak, bohužel je to o procházení schema.org/docs/gs.html , úpravě šablony a testování.

Třeba na recepty jsem šablonu dělal celý víkend a aktuálně ji musím znovu doplnit o nutriční hodnoty.

Výhoda je, že informace vkládá administrátor článku ihned při tvorbě článku a nemusí tedy chodit někam do další komponenty Google Structured Data.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
13. lis 2018 21:07 - 13. lis 2018 21:11 #137675
jasně je to o testování.

Jako příklad uvedu, že tenhle kód
<meta itemprop="headline" content="<?php echo $this->item->title; ?>">
jsem ladil snad 20 minut, protože mi to dřív zobrazilo jen první slovo názvu.

Já mám totiž v k2 hodně šablon pro jednotlivé kategorie a nechci to tam vkládat do obsahu (to bych se upsal a udělal spoustu chyb) ale chci to tam dát jako blok meta značek, které pak jen rozkopíruji do jednotlivých šablon.

ještě poprosím o:

Dobře mají Rich Snippety řešené již výrobci některých šablon - například JoomlartJoomlart šablony již Rich Snippety obsahují automaticky a proto je to další důvod proč je na některé jednoduché weby používáme


Napiš prosím nějaké odkazy na ně. Generují se automaticky nebo se musí zadat ke každému článku? Ale pochybuji, že by fungovaly třeba na k2 nebo icagendu atd.
To už je myslím lepší sáhnout do php.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
14. lis 2018 10:49 - 14. lis 2018 10:55 #137683
rád bych se zeptal, zda je mi někdo schopen vysvětlit význam položky @ID v microdatech?
Nejsem to schopen ani srozumitelně vygooglit.
Mám následující dotazy:
1. je dobré tuto položku vytvořit?
2. položka je ve tvaru URL, ale má to být existující URL? Zde na stránkách je @id třeba www.joomlaportal.cz/jak-zacit/k2article , ale to je neexistující URL. Má být @id existující url článku?

zadat a naplnit si tuto položku umím

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Rudolf Baláš
14. lis 2018 12:01 #137684
Joomlart:

ja-diner.demo.joomlart.com/index.php/en/...-youth-with-new-look

> @ID
Toto je špatná otázka :)

Prostě vyplníte položku a @ID se vyplní při testingu samo.

Příkladem je breadcrumbs, kde jsem přidával poslední položku item - viz zde:

Oprava Rich Snippets pro breadcrumb modul

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
14. lis 2018 12:12 - 14. lis 2018 12:12 #137685
to právě není, že by se vždy vyplnilo @ID samo

kód
<article itemscope itemtype="https://schema.org/Article" itemid="">
      <meta itemprop="headline" content="<?php echo $this->item->title; ?>"/>
      <meta itemprop="name" content="<?php echo $this->item->title; ?>"/>
      <meta itemprop="mainEntityOfPage" content="<?php echo $this->item->absoluteURL; ?>"/>
      <meta itemprop="inLanguage" content="<?php echo ($this->item->language === '*') ? JFactory::getConfig()->get('language') : $this->item->language; ?>" />
      <meta itemprop="image" content="<?php echo JURI::base().$this->item->image; ?>"/>
      
      <span meta itemscope itemtype="https://schema.org/Person" itemprop="author" content="<?php echo $this->item->author->name; ?>"/><meta itemprop="name" content="<?php echo $this->item->author->name; ?>"/></span>
      <meta itemprop="datePublished" content="<?php echo $this->item->created; ?>"/> 
      <meta itemprop="dateModified" content="<?php echo $this->item->modified; ?>"/>  
      <span meta itemscope itemtype="https://schema.org/Organization" itemprop="publisher" content="Diochi"/><meta itemprop="name" content="Diochi"/></span>
 
      </article>
vytvoří položku @id s aktuální URL článku, ale
<article itemscope itemtype="https://schema.org/Article">
      <meta itemprop="headline" content="<?php echo $this->item->title; ?>"/>
      <meta itemprop="name" content="<?php echo $this->item->title; ?>"/>
      <meta itemprop="mainEntityOfPage" content="<?php echo $this->item->absoluteURL; ?>"/>
      <meta itemprop="inLanguage" content="<?php echo ($this->item->language === '*') ? JFactory::getConfig()->get('language') : $this->item->language; ?>" />
      <meta itemprop="image" content="<?php echo JURI::base().$this->item->image; ?>"/>
      
      <span meta itemscope itemtype="https://schema.org/Person" itemprop="author" content="<?php echo $this->item->author->name; ?>"/><meta itemprop="name" content="<?php echo $this->item->author->name; ?>"/></span>
      <meta itemprop="datePublished" content="<?php echo $this->item->created; ?>"/> 
      <meta itemprop="dateModified" content="<?php echo $this->item->modified; ?>"/>  
      <span meta itemscope itemtype="https://schema.org/Organization" itemprop="publisher" content="Diochi"/><meta itemprop="name" content="Diochi"/></span>
      
      </article>
nevytvoří položku @ID (rozdíl je jen v prvním řádku)

Něco k tomu je popsáno zde

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Rudolf Baláš
14. lis 2018 12:20 #137686
Joomlaportal má nasazené Rich snippets jen na detail článku:

search.google.com/structured-data/testin...vky-a-sdileli-je-dal

@Typ == Article se zde vypní samo, pokud doplníte:
<article id="k2article" itemscope itemtype="http://schema.org/Article">

Důležité není to id="k2article", ale itemscope itemtype=" schema.org/Article "

@id == www.joomlaportal.cz/jak-zacit/k2article se zde vyplní samo:

protože se vyplní URL adresa kde jsem + ID z tagu

Tady si myslím že má autor chybu.


Správná implementace má být:
<article itemscope itemtype="http://schema.org/Article">

Protože v elementu Article na Schema @id není

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Rudolf Baláš
14. lis 2018 12:23 #137687
Tady je ukázka jak jsem implementoval já:

search.google.com/structured-data/testin...-na-biostyl-ecoworld

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Rudolf Baláš
14. lis 2018 12:25 - 14. lis 2018 12:26 #137688
Id se vyplní samo, pokud ho v tom tagu máte.

Je to opravdu chyba Google tester tools.

Ale je to taky chyba implementátora, tam vůbec id nemá co dělat.

Má si vytvořit nový obalový tag pro tag article, pokud to id potřebuje ke stylování.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Rudolf Baláš
14. lis 2018 12:29 #137689
> <meta itemprop="mainEntityOfPage" content="<?php echo $this->item->absoluteURL; ?>"/>

Máte špatně

správně

<meta itemscope itemprop="mainEntityOfPage" itemtype=" schema.org/WebPage " itemid="<?php echo $this->item->absoluteURL; ?>"/>

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Rudolf Baláš
14. lis 2018 12:32 #137690
> <span meta itemscope itemtype=" schema.org/Organization " itemprop="publisher" content="Diochi"/><meta itemprop="name" content="Diochi"/></span>

Myslím že logo je povinná položka?

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Linelabcz
14. lis 2018 12:52 #137691
Ahoj, spíš přemýšlím, jestli nerozdělit jednotlivé šablony dle sekcí jako schema.org/NewsArticle novinky a pro blogy uživatelů jako schema.org/BlogPosting

Linelab.cz Tvorba a správa webových stránek Joomla! LINELABOX Vytvořte si Joomla! šablony zdarma

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Rudolf Baláš
14. lis 2018 12:57 #137692
Ano, je to možné, inovaci se meze nekladou :)

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
14. lis 2018 13:11 #137693
tak postupně od nejstaršího, abych se v tom vyznal:

Tady si myslím že má autor chybu.
Protože v elementu Article na Schema @id není


v těch ukázkách jsem autorem já B)
pokud je kód
1. <article itemscope itemtype=" schema.org/Article "> - nevyplní se @ID
2. <article itemscope itemtype=" schema.org/Article " itemid=""> vyplní se @ID aktuálním url článku (nebo mohu dát itemid="/test" a @ID vyplní doménou rozšířenou o "/test".

Sám si ale myslím, že tam $ID nemá co dělat, ale viděl jsem to na několika webech (včetně joomlaportálu), tak jsem se po tom pídil

Tady je ukázka jak jsem implementoval já:

Fajn, mohu to vzít jako vzor?

> <meta itemprop="mainEntityOfPage" content="<?php echo $this->item->absoluteURL; ?>"/>

Máte špatně

správně

<meta itemscope itemprop="mainEntityOfPage" itemtype=" schema.org/WebPage " itemid="<?php echo $this->item->absoluteURL; ?>"/>

mainEntityOfPage je součástí i schema.org/Article
Nehlásí to na něm žádnou chybu - test microdat
Má tedy být raději součástí schema.org/WebPage ?
V schema.org/Article je třeba na joomlaportálu.

Myslím že logo je povinná položka?

Ano je, nemám to ještě dodělané.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.