2012-04-29 37 views
5

私は現在、microdataとschema.orgについて少し混乱しています。 microdataとschema.orgは同じですか?私はGoogleMicrosoftのマニュアルを読んでいますが、それでこの2つの名前の違いを知ることはできませんでした。検索結果が素敵見れば私の意見ではあまりにも多くのオーバーヘッド大丈夫パンくずリストのためのmicrodataまたはschema.orgを追加するDrupal 7のSEO

<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コードを理解します。 htmlコードの数を減らすことはできますか?

また、私はそれを必要としない場合検索エンジンはどのように2つの異なるトレイルを検出しますか?

私の次の問題は、このフォーマットをdrupal breadcrumpsに適用したいということです。これまでのところ、私はこのすべてのコードが実行されることを確認し

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

:私は、私はこのように私自身のSEOモジュールに含まれるようにしようとしたウェブthis fixで見つかりました。しかし、このテーマは私のページには適用されません。 なぜコードが機能しないのですか?これはモジュールbreadcrumbと関連がありますか?私はこの出力がガベージであることを知っていますが、私は結果を見ることができません。

出力がtheme.inc 1682ff theme_breadcrumb(...)のコードではなく、正しく出力されていると思います。

あなたが私の質問のすべての回答を知らない場合でも誰かが私を助けることができればいいですね!

+1

マークアップについての大きな質問ですが、Drupalについての情報を取り出して、別の質問で移動する必要があると思います。 – Baumr

答えて

10

microdataとschema.orgは同じですか?

いいえ、そうではありません。

マイクロデータはWHATWG html仕様です。これは、コンピュータが文書の内容を読みやすくすることを目的としています。

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コードの数を削減することは可能ですか?

スキーマのexempleコードを見てください。ウェブページの項目のマークアップのための組織:あなたの代わりにあなたをschema.orgのから、上記の例を使用している場合、検索エンジンは、2つの異なるコース

を検出しない方法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> 

個々のリンクの代わりにトレイルをマークしてください。 2つのトレイルにマークを付けると、それらは両方とも個別のものとして認識されます。 (または少なくともあるはずです)

なぜこのコードは機能しませんか?

この質問はこの投稿とは別にして、別の質問をしてください。私はdrupalに精通しておらず、マイクロデータに関する質問に答える人々の中にはPHPについて知らない人もいます。

+0

http://www.google.com/webmasters/tools/であなたの例を使用しようとするとrichsnippets breadcrumpは認識されません。 '> 'を他の文字と交換すると、 ' - 'ブレッドクラムは検出されましたが認識されません。 – 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/* institute of * fiddle.jshell.net> Literature&Fiction> Classics *を表示します。 – rekire

関連する問題