2012-04-29 8 views
5

В настоящее время я немного запутался в микроданных и 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(...) вместо моего кода.

Было бы хорошо, если бы кто-нибудь мог мне помочь, также, если вы не знаете всех ответов на мои вопросы!

+1

Отличный вопрос о разметке, но я думаю, вы должны вытащить материал о Drupal и переместить его в отдельный вопрос. – Baumr

ответ

10

Есть ли микроданные и схемы.org то же самое?

Нет, они не являются!

Microdata - это спецификация html WHATWG. Это означает, что пользователям легче читать содержимое документа.

Schema.org - это словарь, который используется для описания предмета. Schema.org представлен Bing, Google и Yahoo.

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

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

http://schema.org/

Можно ли уменьшить количество кода HTML?

Посмотрите код примера на схеме.орг для разметки элемента WebPage: 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> 

Как поисковые системы обнаружения двух различных трасс

Если вы вместо того, чтобы использовать приведенный выше пример из schema.org вам отметьте след вместо отдельных ссылок. Если вы отметите два маршрута, они оба будут распознаны как два отдельных. (или, по крайней мере, должно быть)

Почему этот код не работает?

Я думаю, что этот вопрос должен быть отделен от этого сообщения и задан другим. Я не знаком с drupal, и некоторые из людей, которые могут отвечать на вопросы, касающиеся микроданных, даже не знают PHP.

+0

Если я попытаюсь использовать ваш пример на http://www.google.com/webmasters/tools/ richsnippets, признаки не распознаются. Если я обмениваю '>' с другим символом, например. '' 'обнаружена, но не распознана. – rekire

+0

@rekire Я не знаю, как у вас может быть эта проблема. Я скопировал пример кода, который я написал в ответ на текстовый редактор, с проблемой. – superhero

+0

Извините за задержку. Вот страница [результат] (http://www.google.com/webmasters/tools/richsnippets?url=http%3A%2F%2Ffiddle.jshell.net%2FFEhcE%2Fshow%2F) с моей проблемой, основанной на [ эта скрипка] (http://jsfiddle.net/FEhcE/). Как вы можете видеть google показывает: * fiddle.jshell.net/FEhcE/show/* instat of * fiddle.jshell.net> Литература и художественная литература> Классика *. – rekire

Смежные вопросы