現在、microdata と schema.org について少し混乱しています。microdata と schema.org は同じですか? GoogleとMicrosoftのドキュメントを読みましたが、この 2 つの名前の違いを理解するのに役立ちませんでした。
これまでのところ、私はこの 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コードの数を減らすことはできますか?
また、それが必要ない場合、検索エンジンはどのようにして 2 つの異なるトレイルを検出するのでしょうか?
次の問題は、この形式を drupal のブレッドクラムに適用したいということです。Web でこの修正を見つけ、次のように自分の 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(...)
思います。
私の質問のすべての答えがわからない場合も、誰かが私を助けてくれるといいですね!