- Home
- Categorie
- Coding e Sistemistica
- Joomla!
- Microdati per la data di modifica del pezzo
-
@ElaMedia: penso che ci sia un errore di implementazione di schema . org, però voglio guardare meglio. Mi riferisco a questa pagina: ilmioparto. it/parto-cesareo-programmato .html
-
ok grazie
-
Ciao ElaMedia,
ti confermo che manca la marcatura corretta di schema . org . Se guardi il sorgente non tovi ad esempio questo:itemscope itemtype="http://schema.org/Article
Devi correggere i file php del tema aggiungendo schema . org .
-
ok quindi al posto di:
<?php echo JText::sprintf('COM_CONTENT_LAST_UPDATED', JHTML::_('date',$this->item->modified, JText::_('DATE_FORMAT_LC2'))); ?>
metto:
<div itemscope itemtype="http: // schema . org /Article"> <time datetime="<?php echo JHtml::_('date', $this->item->modified, 'c'); ?>" itemprop="dateModified"> <?php echo JText::sprintf('COM_CONTENT_LAST_UPDATED', JHtml::_('date', $this->item->modified, JText::_('DATE_FORMAT_LC2'))); ?> </time> </div>
Giusto così? Oppure il <div itemscope itemtype="http: // schema. org/Article"> lo devo mettere in un'altra posizione del file php?
Grazie
-
Va sull'elemento che fa iniziare l'articolo, nella parte alta.
-
Scusa per prima ma ho risposto in fretta perché ho avuto un'emergenza. Il tag lo metterei su:
<div class="article">
Nota che i commenti sono nel div superiore, cioè il div class="com-content", ma fuori dal div class="article". Comunque penso che questo sia il div giusto perché delimita il contenuto che può essere distribuito indipendentemente dal resto della pagina. Pertanto avrai:
<!-- ... quello che viene prima ... --> <div class="article" itemscope itemtype="http: // schema. org/Article"> <!-- ... quello che viene dopo ... -->
-
ok perfetto. Grazie! Il tool di google per la verifica dei rich snippet mi dice che è tutto ok.
ps: il resto (immagine ecc...) mi consigli di evidenziarlo tramite gli strumenti per web master di google (sezione evidenziatore di dati)? Ma sono davvero utili in serp questi rich snippet?
-
Usa schema . org con la marcatura "inline" nel php, come hai fatto per article.
Dopo ti posto un esempio di marcatura per la nostra pagina di prova "parto-cesareo-programmato".
-
Questo è un esempio sul tuo codice, ma non l'ho testato. Ho incluso schema .org/article con *name *(titolo), *image *e articleBody (testo; l'ho chiuso in un div).
<div class="article" itemscope itemtype="http://schema.org/Article"> <?php if ($this->params->get('show_page_heading', 1)) : ?> <h2 class="componentheading"> <?php echo $this->escape($this->params->get('page_heading')); ?> </h2> <?php endif; ?> <?php if ($showParentCategory || $showCategory) : ?> <div class="jsn-article-metadata"> <?php if ($showParentCategory) : ?> <span class="parent-category-name"> <?php $title = $this->escape($this->item->parent_title); $url = '<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute($this->item->parent_slug)).'">'.$title.'</a>';?> <?php if ($params->get('link_parent_category') AND $this->item->parent_slug) : ?> <?php echo JText::sprintf('COM_CONTENT_PARENT', $url); ?> <?php else : ?> <?php echo JText::sprintf('COM_CONTENT_PARENT', $title); ?> <?php endif; ?> </span> <?php endif; ?> <?php if ($showCategory) : ?> <span class="category-name"> <?php $title = $this->escape($this->item->category_title); $url = '<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute($this->item->catslug)).'">'.$title.'</a>';?> <?php if ($params->get('link_category') AND $this->item->catslug) : ?> <?php echo JText::sprintf('COM_CONTENT_CATEGORY', $url); ?> <?php else : ?> <?php echo JText::sprintf('COM_CONTENT_CATEGORY', $title); ?> <?php endif; ?> </span> <?php endif; ?> </div> <?php endif; ?> <?php if ($params->get('show_title')) : ?> <h1 class="contentheading" itemprop="name"> <?php if ($params->get('link_titles') && !empty($this->item->readmore_link)) : ?> <a href="<?php echo $this->item->readmore_link; ?>"> <?php echo $this->escape($this->item->title); ?></a> <?php else : ?> <?php echo $this->escape($this->item->title); ?> <?php endif; ?> </h1> <?php endif; ?> <?php if (!$params->get('show_intro')) : echo $this->item->event->afterDisplayTitle; endif; ?> <?php if ($showInfo || $showTools) : ?> <div class="jsn-article-toolbar"> <?php if ($showTools) : ?> <ul class="jsn-article-tools pull-right"> <?php if (!$this->print) : ?> <?php if ($params->get('show_print_icon')) : ?> <li class="jsn-article-print-button"> <?php echo JHtml::_('icon.print_popup', $this->item, $params); ?> </li> <?php endif; ?> <?php if ($params->get('show_email_icon')) : ?> <li class="jsn-article-email-button"> <?php echo JHtml::_('icon.email', $this->item, $params); ?> </li> <?php endif; ?> <?php if ($canEdit) : ?> <li class="jsn-article-icon-edit"> <?php echo JHtml::_('icon.edit', $this->item, $params); ?> </li> <?php endif; ?> <?php else : ?> <li class="jsn-article-print-button"> <?php echo JHtml::_('icon.print_screen', $this->item, $params); ?> </li> <?php endif; ?> </ul> <?php endif; ?> <?php if ($showInfo) : ?> <div class="jsn-article-info"> <?php if ($params->get('show_author') && !empty($this->item->author )) : ?> <p class="small author"> <?php $author = $this->item->author; ?> <?php $author = ($this->item->created_by_alias ? $this->item->created_by_alias : $author);?> <?php if (!empty($this->item->contactid ) && $params->get('link_author') == true):?> <?php echo JText::sprintf('COM_CONTENT_WRITTEN_BY' , JHTML::_('link',JRoute::_('index.php?option=com_contact&view=contact&id='.$this->item->contactid),$author)); ?> <?php else :?> <?php echo JText::sprintf('COM_CONTENT_WRITTEN_BY', $author); ?> <?php endif; ?> </p> <?php endif; ?> <?php if ($params->get('show_create_date')) : ?> <p class="createdate"> <?php echo JText::sprintf('COM_CONTENT_CREATED_DATE_ON', JHTML::_('date',$this->item->created, JText::_('DATE_FORMAT_LC2'))); ?> </p> <?php endif; ?> <?php if ($params->get('show_publish_date')) : ?> <p class="publishdate"> <?php echo JText::sprintf('COM_CONTENT_PUBLISHED_DATE_ON', JHTML::_('date',$this->item->publish_up, JText::_('DATE_FORMAT_LC2'))); ?> </p> <?php endif; ?> <?php if ($params->get('show_hits')) : ?> <p class="hits"> <?php echo JText::sprintf('COM_CONTENT_ARTICLE_HITS', $this->item->hits); ?> </p> <?php endif; ?> </div> <?php endif; ?> <div class="clearbreak"></div> </div> <?php endif; ?> <?php echo $this->item->event->beforeDisplayContent; ?> <div class="jsn-article-content"> <?php if (isset ($this->item->toc)) : ?> <?php echo $this->item->toc; ?> <?php endif; ?> <?php if (isset($urls) AND ((!empty($urls->urls_position) AND ($urls->urls_position=='0')) OR ($params->get('urls_position')=='0' AND empty($urls->urls_position) )) OR (empty($urls->urls_position) AND (!$params->get('urls_position')))): ?> <?php echo $this->loadTemplate('links'); ?> <?php endif; ?> <?php if ($params->get('access-view')):?> <?php if (isset($images->image_fulltext) and !empty($images->image_fulltext)) : ?> <?php $imgfloat = (empty($images->float_fulltext)) ? $params->get('float_fulltext') : $images->float_fulltext; ?> <div class="img-fulltext-<?php echo htmlspecialchars($imgfloat); ?>"> <img <?php if ($images->image_fulltext_caption): echo 'class="caption"'.' title="' .htmlspecialchars($images->image_fulltext_caption) .'"'; endif; ?> src="<?php echo htmlspecialchars($images->image_fulltext); ?>" alt="<?php echo htmlspecialchars($images->image_fulltext_alt); ?>" itemprop="image" /> </div> <?php endif; ?> <?php } ?> <div itemprop="articleBody"> <?php echo $this->item->text; ?> </div> <?php //optional teaser intro text for guests elseif ($params->get('show_noauth') == true AND $user->get('guest') ) : ?> <?php echo $this->item->introtext; ?> <?php //Optional link to let them register to see the whole article. ?> <?php if ($params->get('show_readmore') && $this->item->fulltext != null) : $link1 = JRoute::_('index.php?option=com_users&view=login'); $link = new JURI($link1);?> <a href="<?php echo $link; ?>" class="readon"> <?php $attribs = json_decode($this->item->attribs); ?> <?php if ($attribs->alternative_readmore == null) : echo JText::_('COM_CONTENT_REGISTER_TO_READ_MORE'); elseif ($readmore = $this->item->alternative_readmore) : echo $readmore; if ($params->get('show_readmore_title', 0) != 0) : echo JHTML::_('string.truncate', ($this->item->title), $params->get('readmore_limit')); endif; elseif ($params->get('show_readmore_title', 0) == 0) : echo JText::sprintf('COM_CONTENT_READ_MORE_TITLE'); else : echo JText::_('COM_CONTENT_READ_MORE'); echo JHTML::_('string.truncate', ($this->item->title), $params->get('readmore_limit')); endif; ?></a> <?php endif; ?> <?php endif; ?> <?php if ($params->get('show_modify_date')) : ?> <p class="modifydate"> <?php echo JText::sprintf('COM_CONTENT_LAST_UPDATED', JHTML::_('date',$this->item->modified, JText::_('DATE_FORMAT_LC2'))); ?> </p> <?php endif; ?> </div> <div class="clearbreak"></div> <?php // Pagenavigation config if (!empty($this->item->pagination) AND $this->item->pagination AND $this->item->paginationposition AND!$this->item->paginationrelative): echo $this->item->pagination;?> <?php endif; ?> <?php echo $this->item->event->afterDisplayContent; ?> </div>
-
ok ottimo grazie. faccio dei test
quindi tu sei per la manualità? come lo giudichi lo strumento evidenziatore di dati all'interno degli Strum. per WebM. di G. A me sembra piuttosto confusionario.
-
Non uso l'evidenziatore, che penso sia nato per diffondere la marcatura tra i non addetti ai lavori.
Nei template di Joomla usano "microdata" ed è il primo metodo che ho usato, però JSON-LD penso sia migliore.
In ogni caso, una volta che hai inserito i microdata all'interno del template sei a posto, ci devi tornare solo se vuoi modificare i microdata e/o il template.
-
Ciao,
ho deciso di implementare qualcosa a mano e qualcosa tramite gli Strumenti per Web Master di Google.
ps: ho seguito la tua guida anche per questo mio sito in Joomla 1.5 (finanziamentipergiovani. it / calcolo-partita-iva . html) ma trovo delle difficoltà con lo strumento che testa i Rich Snippet: mi dice "tipo non specificato"
Che ci siano differenze tra le diverse versioni di Joomla?
Grazie
-
Ciao ElaMedia,
hai centrato il problema: ci sono differenze tra le varie versioni di Joomla!
Posta il php del template in cui vuoi mettere i microdata.
-
@FDA said:
Ciao ElaMedia,
hai centrato il problema: ci sono differenze tra le varie versioni di Joomla!
Posta il php del template in cui vuoi mettere i microdata.ti ringrazio ma ci sono riuscito
-