2012-04-29 2 views
5

Ich bin derzeit ein wenig verwirrt über Mikrodaten und schema.org. Sind microdata und schema.org gleich? Ich lese die Google und Microsoft Dokumentation, aber das hat mir nicht geholfen, den Unterschied zwischen diesen beiden Namen zu bekommen.Hinzufügen von Mikrodaten oder Schema.org für Breadcrumb SEO in Drupal 7

Bisher habe ich verstanden, das ich HTML-Code erzeugt haben:

<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> 

Meiner Meinung nach Aufwand zu viel, aber in Ordnung, wenn die Suchergebnisse schön aussehen. Ist es möglich, die Anzahl der HTML-Code zu reduzieren?

Auch wenn ich das nicht brauche wie erkennen die Suchmaschinen zwei verschiedene Spuren?

Mein nächstes Problem ist, dass ich dieses Format auf die Drupal Breadcrumps anwenden möchte. Ich fand auf dem Netz this fix, die ich so mein eigenes SEO-Modul zu schließen versucht:

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"; 
} 

Bisher habe ich überprüft, dass alle dieser Code ausgeführt wird. Aber dieses Thema wird nicht auf meiner Seite angewendet. Warum funktioniert dieser Code nicht? Könnte das mit dem Modul breadcrumb zusammenhängen? Ich weiß, dass diese Ausgabe Müll ist, aber ich kann das Ergebnis nicht sehen.

Wenn ich richtig rate als ist die Ausgabe von theme.inc Zeile 1682ff theme_breadcrumb(...) anstelle von meinem Code erstellt.

Es wäre schön, wenn mir jemand helfen könnte, auch wenn Sie nicht alle Antworten auf meine Fragen kennen!

+1

Große Frage über das Markup, aber ich denke, Sie sollten das Zeug über Drupal herausnehmen und es in einer separaten Frage verschieben – Baumr

Antwort

10

Sind microdata und schema.org gleich?

Nein sind sie nicht!

Mikrodaten sind eine WHATWG html-Spezifikation. Es soll den Computern das Lesen des Inhalts des Dokuments erleichtern.

Schema.org ist ein Vokabular, das verwendet wird, um einen Artikel zu beschreiben. Schema.org wird von Bing, Google und Yahoo vorgestellt.

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

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

http://schema.org/

Ist es möglich, die Anzahl der HTML-Code zu reduzieren?

Werfen Sie einen Blick auf den Beispielcode im Schema.org für das Markup einer Webseite Artikel: 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> 

Wie der Suchmaschinen erkennt zwei verschiedene Routen nicht

Wenn Sie das obige Beispiel von schema.org Ihnen stattdessen verwenden Markieren Sie eine Spur statt einzelner Links. Wenn Sie zwei Trails markieren, werden beide als zwei individuelle Trails erkannt. (Oder sollte zumindest sein)

Warum funktioniert dieser Code nicht?

Ich denke, diese Frage sollte von diesem Beitrag getrennt und in einem anderen gefragt werden. Ich bin nicht vertraut mit Drupal und einige der Leute, die Fragen zu Mikrodaten beantworten können, kennen PHP nicht einmal.

+0

Wenn ich versuche, Ihr Beispiel in http://www.google.com/webmasters/tools/ zu verwenden Richsnippets die Brotkrumen werden nicht erkannt. Wenn ich das '>' mit einem anderen Zeichen, z. '-' Der Breadcrumb wird erkannt, aber nicht erkannt. – rekire

+0

@rekire Ich weiß nicht, wie Sie dieses Problem haben können. Ich kopiere den Beispielcode, den ich in die Antwort geschrieben habe, ohne Probleme in den Texteditor. – superhero

+0

Entschuldigung für die Verzögerung. Hier ist die [Ergebnisseite] (http://www.google.com/webmasters/tools/richsnippets?url=http%3A%2F%2Ffiddle.jshell.net%2FFEhcE%2Fshow%2F) mit meinem Problem basierend auf [ diese Geige] (http://jsfiddle.net/FEhcE/). Wie Sie Google-Shows sehen können: * fiddle.jshell.net/FEhcE/show/* instat von * fiddle.jshell.net> Literatur & Fiction> Klassiker *. – rekire