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!
Große Frage über das Markup, aber ich denke, Sie sollten das Zeug über Drupal herausnehmen und es in einer separaten Frage verschieben – Baumr