Actualmente estoy un poco confundido acerca de microdatos y schema.org. ¿Son iguales los microdatos y schema.org? Leí la documentación Google y Microsoft, pero eso no me ayudó a obtener la diferencia entre estos dos nombres.Agregando microdatos o schema.org para breadcrumb SEO en Drupal 7
Hasta ahora he entendido esto he producido este código HTML:
<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
<a href="/" itemprop="url"><span itemprop="title">My Page</span></a>
</span>
<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
<a href="/cat1" itemprop="url"><span itemprop="title">Category 1</span></a>
</span>
<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
<a href="/cat1/content" itemprop="url"><span itemprop="title">Content</span></a>
</span>
En mi opinión demasiado trabajo, pero está bien si los resultados de la búsqueda se ven bien. ¿Es posible reducir el recuento de código html?
Además, si no necesito eso ¿cómo detectan los buscadores dos rutas diferentes?
Mi próximo problema es que quiero aplicar este formato a las migas de pan drupal. He encontrado en la web this fix que he tratado de incluir a mi propio módulo de SEO como esto:
function mymod_page_alter(&$variables) {
if (!isset($variables['breadcrumb'])) {
$variables['breadcrumb'] = theme('my_microdata', array('breadcrumb' => drupal_get_breadcrumb()));
}
}
function mymod_theme($existing, $type, $theme, $path) {
return array(
'my_microdata' => array(
'variables' => array('breadcrumb' =>array()),
),
);
}
function mymod_menu_breadcrumb_alter(&$active_trail, $item){
foreach($active_trail as $id=>$active_trail_item){
$active_trail[$id]['localized_options']['attributes']['itemprop'][]="url";
}
}
function theme_my_microdata($variables){
$breadcrumb=$variables['breadcrumb'];
print_r(debug_backtrace());
$output="*+*+*+*+*";
if (!empty($breadcrumb)) {
// Provide a navigational heading to give context for breadcrumb links to
// screen-reader users. Make the heading invisible with .element-invisible.
$output = '<h2 class="element-invisible">' . t('You are here') . '</h2>';
$output .= '<div class="breadcrumb">';
$separator="";
foreach($breadcrumb as $breadcrumb_item){
$output.='<span typeof="datav:Breadcrumb">'.$separator.$breadcrumb_item."</span>";
$separator="»";
}
$output .='</div>';
}
return $output."xXxXxXx";
}
Hasta ahora he comprobado que se ejecuta todo este código. Pero este tema no se aplica en mi página. ¿Por qué ese código no funciona? ¿Podría esto estar relacionado con el módulo breadcrumb
? Sé que este resultado será basura, pero no puedo ver el resultado.
Si supongo que es correcta la salida creado por theme.inc línea 1682ff theme_breadcrumb(...)
en lugar de mi código.
Sería bueno si alguien pudiera ayudarme, ¡también si no sabes todas las respuestas a mis preguntas!
Gran pregunta sobre el marcado, pero creo que deberías sacar las cosas sobre Drupal y moverlas en otra pregunta – Baumr