Microdata
From Joomla! Documentation
This article or section is incomplete, which means it may be lacking information. You are welcome to assist in its completion by editing it as well. If this article or section has not been edited in several days, please consider helping complete the content.
This article was last edited by FuzzyBot (talk| contribs) 7 years ago. (Purge)
Wat is Microdata?
Microdata is een manier om contextuele informatie over uw website en zijn inhoud toe te voegen, zodat de zoekmachines de informatie aangeleverd op uw website beter begrijpen.
Contextuele informatie laat zoekmotoren toe om de betekenis te begrijpen van de informatie op uw website. Hierdoor kunnen ze beter antwoorden als de zoek-query uitvoerig, in gesproken taal geformuleerd wordt (waarbij het belangrijk is om goed de betekenis te vatten om dan zo de meest relevante inhoud te tonen).
Microdata kan gebruikt worden om eender wat uit te leggen.Er worden regelmatige 'schema 's toegevoegd . Er bestaan verschillende woordenlijsten, maar op dit moment verkiezen de zoekmotoren het systeem van schema.org.
Om te begrijpen hoe zoekmachines gebruik maken van de microdata, neem een kijkje op deze korte video.
Joomla! 3.x stappenplan voor Microdata
De release 3.2 introduceerde de JMicrodata bibliotheek, onderdeel van één van de vele succesvolle projecten die zijn ingediend tijdens GSoC 2013. De versie 3.3 introduceerde de microdata-elementen in twee van de belangrijkste component lay-outs. Voor 3.4, willen we doorgaan met het verfijnen van de JMicrodata bibliotheek om ervoor te zorgen dat het flexibel en gemakkelijk te gebruiken is voor gebruikers van alle niveaus, we willen ook verder gaan met de implementatie van microdata-elementen in verschillende lay-outs.
Hoe maak ik gebruik van Microdata?
Microdata kunnen worden toegevoegd aan Joomla! met behulp van template overrides of met het gebruik van plugins die het mogelijk maken om microdata in te voegen.
Sinds Joomla! er is een bibliotheek binnen Joomla! waarmee ontwikkelaars microdata kunnen binnenhalen zonder zich over het juiste formaat te moeten buigen.
JMicrodata
JMicrodata is een bibliotheek ter implementatie en weergave van de http://schema.org microdata semantiek.
De bibliotheek is ontworpen met deze doelstellingen in het achterhoofd:
- Met de mogelijkheid het Microdata Type dynamisch te wisselen hoef je enkel het Type te wijzigen (er zijn 558 verschillende types beschikbaar ).
- Toon gevalideerde semantiek, de bibliotheek draagt er zorg voor dat de weergave van gegevens correct is.
- Inschakelen/uitschakelen van de microdata semantiek.
- Fallbacks, je zou nooit enige zinvolle semantiek verliezen.
De JMicrodata klasse maakt gebruik van het bestand typen.json dat beschikbare http://schema.org Types en Properties bevat. Dit bestand werd automatisch aangemaakt met de https://github.com/PAlexcom/Spider4Schema web-crawler.
Hoe gebruik ik de JMicrodata bibliotheek?
Eerst initialiseer je een exemplaar van de bibliotheek in uw extensie:
<?php
$microdata = new JMicrodata('Article');
?>
Veronderstel dat volgende tekenreeks in uw artikel voor komt:
<div>
<!-- Author of the content -->
<span>
Written by Alexandru Pruteanu
</span>
<!-- The content -->
Here is the article text...
<div>
En u wilt microdata semantiek toevoegen en zet het type voor scope of toepassingsgebied gelijk aan Artikel:
<?php
$microdata = new JMicrodata('Article');
?>
<div <?php echo $microdata->displayScope();?>>
<!-- Author of the content -->
<span>
Written by <?php echo $microdata->content('Alexandru Pruteanu')->property('author')->fallback('Person', 'name')->display();?>
</span>
<!-- The content -->
<?php echo $microdata->content('Here is the article text...')->property('articleBody')->display();?>
<div>
De bibliotheek zal volgende weergegeven:
<div itemscope itemtype='https://schema.org/Article'>
<!-- Author of the content -->
<span>
Written by
<span itemprop='author' itemscope itemtype='https://schema.org/Person'>
<span itemprop='name'>Alexandru Pruteanu</span>
</span>
</span>
<!-- The content -->
<span itemprop='articleBody'>Here is the article text...</span>
<div>
Wat gebeurt er als het toepassingsgebied iets anders is dan Artikel, bijvoorbeeld Product en deze heeft geen eigenschappen als auteur en articleBody ?
<?php
$microdata = new JMicrodata('Product');
?>
<div <?php echo $microdata->displayScope();?>>
<!-- Author of the content -->
<span>
Written by <?php echo $microdata->content('Alexandru Pruteanu')->property('author')->fallback('Person', 'name')->display();?>
</span>
<!-- The content -->
<?php echo $microdata->content('Here is the article text...')->property('articleBody')->display();?>
<div>
Als u een fallback ->fallback('Person', 'name') hebt toegevoegd, dan zal het terugvallen op het type Person, en gaat er geen semantische betekenis verloren.
<div itemscope itemtype='https://schema.org/Product'>
<!-- Author of the content -->
<span>
Written by
<span itemscope itemtype='https://schema.org/Person'>
<span itemprop='name'>Alexandru Pruteanu</span>
</span>
</span>
<!-- The content -->
Here is the article text...
<div>
Als u geen behoefte aan al die microdata informatie, dan schakel je die functie uit door: $microdata->enable(false);
<?php
$microdata = new JMicrodata('Product');
$microdata->enable(false);
?>
<div <?php echo $microdata->displayScope();?>>
<!-- Author of the content -->
<span>
Written by <?php echo $microdata->content('Alexandru Pruteanu')->property('author')->fallback('Person', 'name')->display();?>
</span>
<!-- The content -->
<?php echo $microdata->content('Here is the article text...')->property('articleBody')->display();?>
<div>
De bibliotheek zal het volgende tonen:
<div>
<!-- Author of the content -->
<span>
Written by Alexandru Pruteanu
</span>
<!-- The content -->
Here is the article text...
<div>
JMicrodata documentatie
Alle Microdata HTML-uitvoer wordt afgehandeld door de JMicrodata klasse.
JMicrodata::htmlScope($scope);
Geretourneerd:
itemscope itemtype="http://schema.org/$scope"
de HTML Scope van het gegeven Type, moet binnen een HTML tag-element zitten.
JMicrodata::htmlProperty($property);
Geretourneerd:
itemprop="$property"
de HTML van de betrokken Property, moet binnen een HTML tag-element zitten.
JMicrodata::htmlSpan($content, $property = "", $scope = "", $inverse = false);
Geretourneerd:
<span itemscope itemtype="http://schema.org/$scope" itemprop="$property">
$content
</span>
de microdata in een tag; er is ook een JMicrodata::htmlDiv () - methode met dezelfde functionaliteiten beschikbaar.
JMicrodata::htmlMeta($content, $property, $scope = "", $inverse = false);
Geretourneerd:
<meta $property $scope content="$content">
de microdata in een <meta> tag met de content voor machines, deze methode voegt de meta tag niet in de <head> sectie van de pagina.
$microdata = JMicrodata($type = "", $flag = true);
Maakt een nieuwe instantie van de JMicrodata klasse en zet het huidige Type, de flag parameter is om het retourneren van HTML microdata semantiek in of uit te schakelen. Terugval, fallback, naar het Type Thing, indien het Type niet gegeven of beschikbaar is.
$microdata->enable($flag = true);
Het retourneren van HTML Microdata semantiek Inschakelen of Uitschakelen.
$microdata->isEnabled();
Retourneert true als de Microdata semantiek HTML-uitvoer ingeschakeld is.
$microdata->setType($type);
Zet een nieuwe Schema.org Type, er is ook een $microdata->getType() functie voor het ophalen van het huidige Type.
$microdata->property($name);
Zet de Property als die beschikbaar is in het toepassingsgebied van het huidige Type , er is ook een functie $microdata->getProperty() voor het ophalen van de huidige Property.
$microdata->content($value, $machineValue = null);
Het instellen van een Text value of Content value voor de Microdata, er is ook een functie $microdata->getContent() voor het ophalen van de huidige Text value.
$microdata->fallback($type, $property);
Het instellen van een Fallback voor Type en Property, er zijn ook $microdata->getFallbackType() en $microdata->getFallbackProperty() voor het ophalen van de Fallback Type en Fallback Property. Fallback naar Thing Type indien het Type niet beschikbaar is, Fallback naar null als de Property niet beschikbaar is.
$microdata->displayScope();
Geretourneerd:
itemscope itemtype="http://schema.org/$scope
de HTML-met de Scope van het huidige Type, moet geplaatst worden in een tag-element.
$microdata->display($displayType = "", $emptyOutput = false);
Retourneert de Microdata HTML, als de Property niet beschikbaar is, dan checkt het op een Fallback, zoniet wordt geretourneerd.
Er zijn 4 soorten van $displayType:
- inline
- span
- html
- meta
Deze methode bevat de logica om de HTML-Microdata weer te geven, Als u de $displayType parameter specifieert, dan zal de Microdata worden teruggegeven op de manier die u hebt opgegeven, Zo niet, bij een lege $displayType parameter, dan zal het verwerkt worden door de methode display() en zal het HTML op de juiste manier retourneren, inclusief de verwachte Property Type (voorbeeld van verwachtte Types = URL, Text, Person ...)
— Wat gebeurt er als je display($displayType = "meta") toepast?
De geretourneerde HTML zal zich in een <meta> HTML-tag bevinden.
— Wat als je display() gebruikt?
De methode zal automatisch het verwachte type voor de opgegeven Property checken, en zal de juiste Microdata HTML retourneren.
Er zijn 3 soorten van Microdata:
- geneste → voorbeeld:
itemprop="$property" itemscope itemtype="http://schema.org/$scope"
als er ook een $content beschikbaar is, dan is de output
<span itemprop="$property" itemscope itemtype="http://schema.org/$scope">$content</span>
- meta → voorbeeld:
<meta content="$content" itemprop="$property">
als er geen $content beschikbaar is, zal de output zijn:
itemprop="$property"
- normaal → voorbeeld:
itemprop="$property"
als er een $content beschikbaar is, dan is de output
<span itemprop="$property">$content</span>
Voor enkele voorbeelden kijk in de test bestanden https://github.com/joomla/joomla-cms/blob/master/tests/unit/suites/libraries/joomla/microdata/JMicrodataTest.php