2012-04-29 22 views
5

Attualmente sono un po 'confuso su microdati e schema.org. I microdati e schema.org sono gli stessi? Ho letto la documentazione Google e Microsoft, ma ciò non mi ha aiutato a ottenere la differenza tra questi due nomi.Aggiunta di microdati o schema.org per il breadcrumb SEO in Drupal 7

Finora ho capito questo ho prodotto questo codice 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> 

A mio parere troppo in alto, ma va bene se i risultati di ricerca di un aspetto gradevole. È possibile ridurre il conteggio del codice html?

Anche se non ho bisogno di quello come i motori di ricerca rilevano due percorsi diversi?

Il mio prossimo problema è che voglio applicare questo formato ai breadcrump drupal. Ho trovato sul web this fix, che ho cercato di includere al mio modulo SEO come questo:

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

Finora ho controllato che tutto questo codice viene eseguito. Ma questo tema non è applicato sulla mia pagina. Perché quel codice non funziona? Questo potrebbe essere collegato al modulo breadcrumb? So che questa uscita sarà spazzatura ma non riesco a vedere il risultato.

Se immagino giusto di quello che è l'output creato da theme.inc riga 1682ff theme_breadcrumb(...) invece del mio codice.

Sarebbe bello se qualcuno potesse aiutarmi, anche se non conosci tutte le risposte delle mie domande!

+1

Grande domanda sul markup, ma penso che dovresti prendere le informazioni su Drupal e spostarlo in una domanda separata – Baumr

risposta

10

I microdati e schema.org sono gli stessi?

No, non lo sono!

Microdata è una specifica html WHATWG. È in primo piano per rendere più facile per i computer leggere il contenuto del documento.

Schema.org è un vocabolario che viene utilizzato per descrivere un articolo. Schema.org è introdotto da Bing, Google e Yahoo.

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

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

http://schema.org/

E 'possibile ridurre il numero di codice html?

Dai un'occhiata al codice di esempio sullo schema.org per il markup di un elemento pagina web: 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> 

Come si fa i motori di ricerca rilevano due percorsi differenti

Se si utilizza l'esempio di cui sopra da schema.org invece segnare una traccia invece di singoli collegamenti. Se segna due percorsi, saranno entrambi riconosciuti come due singoli. (o almeno dovrebbe essere)

Perché il codice non funziona?

Penso che questa domanda dovrebbe essere separata da questo post e chiesto in un altro. Non ho familiarità con Drupal e alcune delle persone che possono rispondere a domande riguardanti i microdati non conoscono nemmeno PHP.

+0

Se provo a utilizzare il tuo esempio in http://www.google.com/webmasters/tools/ richsnippets i breadcrumps non sono riconosciuti. Se scambio il '>' con un altro carattere, ad es. '-' il breadcrumb viene rilevato ma non riconosciuto. – rekire

+0

@rekire Non so come puoi avere quel problema. Copiavo il codice di esempio che ho scritto nella risposta all'editor di testo senza alcun problema. – superhero

+0

Ci scusiamo per il ritardo. Ecco la [pagina dei risultati] (http://www.google.com/webmasters/tools/richsnippets?url=http%3A%2F%2Ffiddle.jshell.net%2FFEhcE%2Fshow%2F) con i miei problemi basati su [ questo violino] (http://jsfiddle.net/FEhcE/). Come puoi vedere su google show: * fiddle.jshell.net/FEhcE/show/* instat di * fiddle.jshell.net> Letteratura e narrativa> Classici *. – rekire

Problemi correlati