Dodaję znaczniki semantyczne schema.org i chciałbym połączyć kilka z nich w całkiem różnych częściach strony.
Działa to, gdy określę je jako rodzic / dziecko:
<div itemscope itemtype="http://schema.org/ExerciseAction">
<span itemprop="distance">11 km</span>
<div itemprop="event" itemscope itemtype="http://schema.org/Event">
<span itemprop="name">first event</span>
<span itemprop="startDate">2001-01-01</span>
</div>
</div>
Nie wiem jednak, jak je połączyć, gdy są oddzielone górą HTML:
<div itemscope itemtype="http://schema.org/Event">
<span itemprop="name">some event</span>
<span itemprop="startDate">2002-02-02</span>
</div>
<!--
....
zillion other HTML stuff
...
-->
<div itemscope itemtype="http://schema.org/ExerciseAction">
<span itemprop="distance">22 km</span>
</div>
Chyba powinienem użyć „itemref” lub czegoś w celu powiązania powiązanych zakresów, ale nie mogę sprawić, żeby działało. Spojrzenie na podobne pytania nie pomogło w tym przypadku.
AKTUALIZACJA: zauważ, że szczególnie szukam rozwiązania, które działa poprzez pewnego rodzaju odwołania i NIE DZIAŁA poprzez zagnieżdżanie dowolnego typu. Również kolejność drugiego (niedziałającego) przykładu musi pozostać taka sama (najpierw zdarzenie, drugie ćwiczenie). (Istnieje kilka przyczyn, na które nie mam wpływu).
W szczególności „to działa” jest zdefiniowane jako narzędzie przynajmniej fragmentów rozszerzonych Google, pokazujące, że elementy SĄ połączone ze sobą (tak jak w przypadku pierwszego działającego przykładu)
WebPage
znaczniki nadrzędne i teżitemref
tam użyć , aby nie zawierały (niepowiązanych) typów elementów jako elementów podrzędnych. Prawdopodobnie powinno być inne pytanie.Jeśli dobrze rozumiem twoje pytanie, po prostu nie zamykaj tego div.
Dopóki nie zostanie znaleziony pasujący znacznik, wszystko, co znajduje się w tym początkowym div, nadal będzie uważane za część tego początkowego div, w takim przypadku Event.
źródło
@Guisasso ma rację, po prostu nie zamykasz elementu. Ale z innej uwagi nie ograniczasz się do używania schematu tylko w elementach DIV i używania zakresów, jak to sugeruje (same przykłady). Jeśli cała strona dotyczy rzeczy związanych ze zdarzeniem, a dotyczy to całej witryny, sensowniejsze może być użycie elementu body, co oznacza, że twój szablon, jeśli masz taki, automatycznie zajmuje się otwieraniem schematu i zamykaniem. W ten sposób Twoje artykuły wypełniają tę treść, gdy szablon ją ustawia.
Na przykład:
Lub możesz użyć go w elemencie
MAIN
lubARTICLE
, jeśli używasz HTML5.źródło
Uruchomiłem też właściwość additionalType , której można użyć w następujący sposób
chociaż pomaga to w moim podstawowym problemie (niemożność zmiany kolejności relacji dziecko-rodzic w ćwiczeniu / zdarzeniu), nie pomaga w innym problemie (niemożność zagnieżdżenia tych div) i jest trochę kludgy (nie tworzy taki sam semantyczny jak oryginalny przykład roboczy). Jest to jednak przydatne, ponieważ umożliwia łączenie typów elementów schema.org, które nie mają zamierzonych elementów do łączenia, więc możesz połączyć np. Book to SportsEvent lub cokolwiek innego.
Odpowiadam sobie na wypadek, gdyby to pomogło komuś innemu z podobnym problemem, ponieważ tak naprawdę mi to nie pomaga (chociaż może to być ostatnia szansa, jeśli nic lepszego nie wyjdzie)
źródło