В настоящее время я немного запутался в микроданных и schema.org. Являются ли микроданные и schema.org одинаковыми? Я прочитал документацию Google и Microsoft, но это не помогло мне разобраться в двух этих именах.Добавление микроданных или schema.org for breadcrumb SEO в Drupal 7
До сих пор я понял это, я произвел этот 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>
На мой взгляд, слишком много накладных расходов, но хорошо, если результаты поиска хорошо выглядеть. Можно ли уменьшить количество html-кода?
Также, если мне это не нужно , как поисковые системы обнаруживают два разных маршрута?
Моя следующая проблема заключается в том, что я хочу применить этот формат к drupal breadcrumps. Я нашел в Интернете this fix который я попытался включить в мой собственный модуль SEO, как это:
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";
}
До сих пор я проверил, что весь этот код выполняется. Но эта тема не применяется на моей странице. Почему этот код не работает? Может ли это быть связано с модулем breadcrumb
? Я знаю, что этот вывод будет мусором, но я не вижу результата.
Если я догадываюсь, что это результат, созданный theme.inc строка 1682ff theme_breadcrumb(...)
вместо моего кода.
Было бы хорошо, если бы кто-нибудь мог мне помочь, также, если вы не знаете всех ответов на мои вопросы!
Отличный вопрос о разметке, но я думаю, вы должны вытащить материал о Drupal и переместить его в отдельный вопрос. – Baumr