2012-04-29 19 views
5

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!

+1

Gran pregunta sobre el marcado, pero creo que deberías sacar las cosas sobre Drupal y moverlas en otra pregunta – Baumr

Respuesta

10

¿Son iguales los microdatos y schema.org?

No, no lo son!

Microdata es una especificación WHATWG html. Se supone que debe facilitar que las computadoras lean el contenido del documento.

Schema.org es un vocabulario que se utiliza para describir un artículo. Schema.org es presentado por Bing, Google y Yahoo.

http://en.wikipedia.org/wiki/Microdata_(HTML)

http://www.w3.org/TR/html5/microdata.html

http://schema.org/

¿Es posible reducir el número de código html?

Eche un vistazo al código de ejemplo en el esquema.org para el marcado de un elemento de página Web: http://schema.org/WebPage

<body itemscope itemtype="http://schema.org/WebPage"> 
... 
<div itemprop="breadcrumb"> 
    <a href="category/books.html">Books</a> > 
    <a href="category/books-literature.html">Literature & Fiction</a> > 
    <a href="category/books-classics">Classics</a> 
</div> 

¿Cómo los motores de búsqueda detectar dos caminos diferentes

Si utiliza el ejemplo anterior de schema.org en lugar de eso marque un camino en lugar de enlaces individuales. Si marcas dos caminos, ambos serán reconocidos como dos individuales. (O al menos debería serlo)

¿Por qué ese código no funciona?

Creo que esta pregunta debe separarse de esta publicación y debe hacerse en una diferente. No estoy familiarizado con drupal y algunas de las personas que pueden responder preguntas sobre microdatos ni siquiera conocen PHP.

+0

Si intento usar tu ejemplo en http://www.google.com/webmasters/tools/ richsnippets the breadcrumps no son reconocidos. Si cambio el '>' por otro, por ejemplo, '-' la ruta de exploración se detecta pero no se reconoce. – rekire

+0

@rekire No sé cómo puede tener ese problema. Copié pegado el código de ejemplo que escribí en la respuesta al editor de texto sin un problema. – superhero

+0

Disculpe la demora. Aquí está la [página de resultados] (http://www.google.com/webmasters/tools/richsnippets?url=http%3A%2F%2Ffiddle.jshell.net%2FFEhcE%2Fshow%2F) con mi problema basado en [ este violín] (http://jsfiddle.net/FEhcE/). Como puede ver en google shows: * fiddle.jshell.net/FEhcE/show/* instat of * fiddle.jshell.net> Literature & Fiction> Classics *. – rekire