Oltre 2 anni fa ho pubblicato un articolo su come risolvere i problemi con i temi WordPress che non superavano il test Tool di Google Rich Snippets. Da allora molto è cambiato - la maggior parte dei temi Word-Press e hanno bet-ter sostegno, HTML5 e CSS3 sono arrivati, e Google, Yahoo e Bing si sono riuniti e hanno deciso di concentrarsi su Microdata, via schema.org. Al momento micro-formati sembrava il modo facil-est per contrassegnare le pagine, e lo strumento-zione di prova aveva il com-pre-galline-ive sostegno più per queste. La mossa di microdati e le modifiche al Word-Press ha richiesto un nuovo art-icolo: è questo!
Invece di avere un sacco di articoli separati per i diversi temi che ho deciso di provare a fornire tutte le informazioni in 1 guida. Questo rende più facile tenersi aggiornati, e significa che c'è solo 1 punto centrale per tutte le richieste e di discussione. E 'anche più senso, come molti dei passaggi sono gli stessi indipendentemente da ciò che il tema che si sta utilizzando. Non ho intenzione di coprire tutti gli optional in questo articolo, solo le nozioni di base per ottenere il vostro sito per convalidare con lo strumento. Una volta che sei riuscito che si dovrebbe trovare l'aggiunta di markup aggiuntivo è relativamente facile. Quindi, consente di iniziare ...
Aggiungere un link dal tuo profilo Google al tuo sito
Vedrete su il mio google pro file che ho un link pub-blico a https://diymediahome.org - Sarà necessario lo stesso per il tuo sito. Idealmente avrete bisogno di tutti i vostri autori di avere un profilo Google che è collegato al tuo sito nello stesso modo come questo.
- Accedi al tuo google pro file
- Scorrere verso il basso fino a visualizzare la Link sezione da qualche parte verso il basso a destra della pagina
- Clicca sul modifica collegamento
- Sotto l' collaboratore se-zione click Aggiungi link cus-tom
- Assicurarsi che la casella a destra del testo collaboratore è impostato su pubblico
- Immettere il nome del sito (e.g. DIY Media Home) e indirizzo (e.g. https://diymediahome.org)
- Fare clic su Salva
Aggiungi un link dal tuo sito al tuo profilo google
Ora abbiamo bisogno di aggiungere un link dalla pagina dell'autore al tuo profilo google. Ci sono 2 Altern-at-ive modi per fare questo, Vivamente raccomandiamo di usare la Yoast QUESTO plugin.
- Installare l' Yoast QUESTO plu-gin OR aggiungere il seguente codice al file functions.php del vostro tema
update_contactmethods funzione( $contactmethods ) { // Aggiungi Profili Google $ contactmethods['Googleplus'] = 'Google '; // Add Twitter $contactmethods['Twitter'] = __( 'Nome utente Twitter (senza @)', 'Wordpress-seo' ); return $ contactmethods; } add_filter( 'user_contactmethods', 'update_contactmethods', 10, 1);
- Vai al tuo profilo dell'autore nella interfaccia di amministrazione wordpress (il mouse sopra Utenti nel menù di sinistra, e cliccare su Il tuo Pro file)
- Nel Google+ campo di aggiungere un link al tuo pro-file di google (e.g. https://plus.google.com/104657888470728381512 /)
- Assicurarsi o si, o di altri tuoi autori del sito fanno la stessa cosa, e ogni link ai propri profili Google
- Ora, se si sta utilizzando il Yoast plu-gin, andare QUESTO menu e selezionare Titoli e Metas, cleccare il Casa menu nella parte superiore della pagina e nella Autore high-light-zione casella a discesa selezionare l'utente che si desidera utilizzare come l'autore della homepage
- Se sei insistente di non usare il plugin Yoast sarà necessario aggiungere manualmente il codice riportato di seguito header.php (assum-zione ne hai uno). Non dimenticare di cambiare il mio profilo Google URL al tuo. Questo codice usa profilo Google URL del post dell'autore se c'è uno valido, e userà un default (il vostro) se non c'è.
<link rel ="autore" href ="<?php $ gplus = 'https://plus.google.com/115369062315673853712/posts '; se ( is_singular() ) {$ post globale; $gplus = get_the_author_meta( 'Googleplus', $post->post_author );} echo $ gplus; ?>"/>
Correggere gli errori di un campo mancante "aggiornato"
La maggior parte dei temi wordpress includono informazioni su quando il post è stato pubblicato nell'area informazioni post, ma pochi comprendono anche quando è stato aggiornato l'ultima volta. Questo è un peccato, perché aggiornato è necessario che, pubblicato in realtà non è! Aggiungendo è facile però, e ancora, ci sono 2 modi, il modo corretto e il modo rapido mod. Vi consiglio il modo corretto di corso, ma se necessario si può ricorrere al trucco rapido. Stiamo anche andando a cambiare da microformati ai microdati, allo stesso tempo.
Il modo corretto
Stiamo per aggiungere alcune informazioni aggiuntive per inviare le intestazioni, sia per i motori di ricerca e per i nostri vis-da-ors. Avremo bisogno di fare questo per i messaggi, pagine, archivi e la homepage.
- Abbiamo bisogno di trovare il file che contiene il codice che genera il link pubblicato. Questo sarà quasi certamente utilizzare la funzione di wordpress get_the_date(). È possibile cercare tra i file del tema, o fare riferimento al tema dettagli specifici sotto i particolari in cui ho fornito un sacco di temi
- Stiamo andando a controllare se le date pubblicate e aggiornate sono la stessa cosa. Se sono ci basta aggiungere il supplemento dateUp-datato itemprop ma se sono diversi ci sarà in uscita un testo in più per il visitatore
- Stiamo per aggiungere il low-zione fol (e modificarlo come si spiega)
<?php se(get_the_date()== Get_the_modified_date()): ?> //noi andremo a utilizzare il codice originale just con la classe aggiornamenti inseriti / / Inserire il codice originale del tema qui / / Rimuovere eventuali class ="" //aggiungere itemprop ="datePublished DateCreated DateModified" to the HTML tag surrounding the get_the_date() funzione <?php altro: ?> //stiamo andando a utilizzare un po 'di codice solo con la data aggiornata aggiunto / / Copiare il codice originale del vostro tema a qui e poi modificarlo come sotto / / Rimuovere eventuali class ="" //aggiungere itemprop ="datePublished DateCreated" to the HTML tag surrounding the get_the_date() funzione / / Aggiungere in un nuovo tag html nella linea in cui si desidera che appaia come di seguito / / Aggiornato <?php echo get_the_modified_date() ?> <?php endif; ?>
- Potrete sia necessario per capire il codice del tema originale e modificarlo, o fare riferimento ai dettagli per i temi specifici indicati di seguito.
- Potrebbe essere necessario ripetere questa modifica per più file
L'hack rapido
Stiamo andando a imbrogliare e fornire la data pubblicata la data aggiornata, anche se il post è stato effettivamente aggiornato più di recente. Se il post è stato aggiornato allora saremo effettivamente fornito informazioni inesatte, ma sarà ancora val-id-ate. E 'davvero meglio per farlo correttamente, se possibile, ma se siete insistente a farlo in questo modo continua a leggere. Come sopra, avremo bisogno di fare questo per i messaggi, pagine, archivi e la homepage.
- Come sopra abbiamo bisogno di trovare il file che contiene il codice che genera il link pubblicato. Questo sarà quasi certamente utilizzare la funzione di wordpress get_the_date(). È possibile cercare tra i file del tema, o consultare la tabella qui sotto, dove ho fornito dettagli per un sacco di temi
- Trova l' HTML ele-mento che sur-arrotonda la data (spesso avrà
class="published"
). - Modificare l'elemento rimuovendo la classe e aggiungendo la seguente invece
itemprop="datePublished dateCreated dateUpdated"
- Come sopra, può essere necessario ripetere questa modifica in più file
Sostituzione delle microformati built-in (perché mescolando formati rich snippet rompe le cose)
Per impostazione predefinita wordpress utilizza ancora microformat markup per i commenti, che sembra tristemente a rompere markup microdati di cose come ricette. Il modo migliore per risolvere questo problema è quello di rimuovere il markup microformato e sostituirlo con microdati markup. Unfor-tu-sante, le funzioni fondamentali wordpress che producono questo markup non hanno un filtro o un gancio situato quindi questo richiede un po 'di armeggiare su.
Sostituzione vCard nella sezione commenti
- Quello che andremo a fare è utilizzare un commento callback per cambiare la destinazione dei commenti. Molti temi già utilizzano un callback, che possiamo modificare, e per coloro che non lo fanno aggiungeremo uno basato sul default wordpress
- Controllare se il tema ha già un commento callback - cercare i file del tema per la funzione
wp_list_comments
. Se include il codicecallback=
o'callback' =>
allora sta usando un callback che si dovrebbe essere in grado di trovare (proba-bilmente in functions.php) cercando il nome della funzione di callback, che è la parte dopo il segno = o freccia, e.g.wp_list_comments( array( 'callback' => 'twentyten_comment' ) );
owp_list_comments('type=comment&callback=bones_comments');
. If it doesn’t then we will need to add one by addingcallback=diymh_comment
oarray( 'callback' => 'diymh_comment' )
alla linea. - Se avete bisogno di aggiungere un commento richiamata sarà necessario aggiungere il seguente codice functions.php
Funzione diymh_comment($commento, $args, $profondità) { $GLOBALS['Commento'] = $ Commento; ?> <che <?php comment_class(); ?> id ="Li-how<?php COMMENT_ID() ?>"> <div id ="comment-<?php COMMENT_ID(); ?>"> <div class ="commento-autore novcard"> <?php echo get_avatar($commento,$size = '48 ',$default = '<path_to_url>' ); ?> <?php printf(__('<citare class ="fn">%S</citare> <span class ="dice">dice:</intervallo>'), get_comment_author_link()) ?> </div> <?php se ($comment->comment_approved == '0 ') : ?> <in><?php _e('Il tuo commento è in attesa di moderazione.') ?></in> <br /> <?php endif; ?> <div class ="come meta commentmetadata"><a href ="<?htmlspecialchars php echo( get_comment_link( $comment->COMMENT_ID ) ) ?>"><?php printf(__('% 1 $ s at% 2 $ s'), get_comment_date(), get_comment_time()) ?></un><?php edit_comment_link(__('(Modifica)'),'','') ?></div> <?php comment_text() ?> <div class ="rispondere"> <?php comment_reply_link(array_merge( $args, schiera('Profondità' => $profondità, 'Max_depth' => $args['Max_depth']))) ?> </div> </div> <?php }
- Si noterà che questo codice ha un
class="novcard"
invece dell'originaleclass="vcard".
- Se il tema ha avuto una propria callback è necessario trovare la funzione di callback e sostituire tutte le istanze di
class="vcard"
conclass="novcard"
Sostituzione hfeed nell'intestazione
- Prossimo, abbiamo bisogno di rimuovere anche eventuali casi di
class="hfeed"
, che sono usu-alleato trovato in header.php. Sostituire tutte le occor-renze dihfeed
connohfeed
Sostituzione hentry e titolo rich snippet
- Siamo in grado di sostituire questi elementi con un paio di funzioni ordinate aggiunto functions.php
Funzione diymh_replace_hentry($classi){ se(($key = array_search('Hentry', $classi)) !== False) $classi[$chiave]= 'Nohentry'; return $ classi; } add_filter('Post_class','Diymh_replace_hentry'); Funzione diymh_microdata_title($titolo) { ritorno '<campata itemprop ="nome">'. $ Titolo.'</intervallo>'; } add_filter('The_title', 'Diymh_microdata_title', 10, 2);
Aggiungendo il tipo di informazioni (e.g. Articolo, Ricetta, eccetera) all'intestazione articolo
- Primo, decidere che tipo di lavoro che si sta pubblicando - molto probabilmente un articolo. Dai un'occhiata alla lista a schema.org
- Trova l' HTML tag che con-tiene la funzione
post_class()
- Aggiungere il codice
itemscope itemtype="https://schema.org/Article"
(sostituire articolo, se hai scelto un diverso tipo di lavoro)
Finalmente, per evitare di rompere tutti gli stili
- Sarà necessario modificare style.css del tuo tema e fare una operazione di ricerca / sostituzione per sostituire tutte le istanze di
.vcard
con.novcard
e sostituire tutte le istanze di.hfeed
con.nohfeed
in modo che le nostre modifiche non si scherza qualsiasi CSS Styl-zione delle nostre osservazioni
Fissaggio altri errori
Eventuali altre modifiche necessarie saranno dettagliate su ogni tema base al di sotto. Se avete un tema che non si riesce a risolvere il problema si prega di inviare un commento. Se è un tema gratuito per favore fatemelo sapere il nome del tema, and if it is a premium theme please let me know so I can provide you with an e‑mail address to send a zipped copy to.
dettagli specifici a tema
Prima solo di effettuare queste modifiche non dimenticare di effettuare i passi per collegare il tuo profilo Google e il vostro sito a vicenda, e installare Yoast QUESTO, o aggiungere il codice prevede sopra.
Twenty Ten 1.5
In functions.php sostituire questo
Funzione twentyten_posted_on() { printf( __( '<span class ="%1$S">Pubblicato il</intervallo> %2$S <span class ="meta-settembre">di</intervallo> %3$s ', 'TwentyTen' ), 'Meta-prep meta-prep-autore', sprintf( '<a href ="%1$S" title ="%2$S" rel ="bookmark"><span class ="entry-data">%3$S</intervallo></un>', get_permalink(), esc_attr( get_the_time() ), get_the_date() ), sprintf( '<span class ="autore vcard"><una class ="url fn n" href ="%1$S" title ="%2$S">%3$S</un></intervallo>', get_author_posts_url( get_the_author_meta( 'ID' ) ), esc_attr( sprintf( __( 'Guarda tutti i messaggi di% s', 'TwentyTen' ), get_the_author() ) ), get_the_author() ) ); }
Con questa
Funzione twentyten_posted_on() {
se(get_the_date()== Get_the_modified_date()){
printf( __( '<span class ="%1$S">Pubblicato il</intervallo> %2$S <span class ="meta-settembre">di</intervallo> %3$s ', 'TwentyTen' ),
'Meta-prep meta-prep-autore',
sprintf( '<a href ="%1$S" title ="%2$S" rel ="bookmark"><campata itemprop ="datePublished DateCreated DateModified">%3$S</intervallo></un>',
get_permalink(),
esc_attr( get_the_time() ),
get_the_date()
),
sprintf( '<span class ="autore vcard"><un itemprop ="autore" href ="%1$S" title ="%2$S">%3$S</un></intervallo>',
get_author_posts_url( get_the_author_meta( 'ID' ) ),
esc_attr( sprintf( __( 'Guarda tutti i messaggi di% s', 'TwentyTen' ), get_the_author() ) ),
get_the_author()
)
);
}
altro{
printf( __( '<span class ="%1$S">Pubblicato il</intervallo> %2$S <span class ="meta-settembre">di</intervallo> %3$S. Updated <campata itemprop ="DateModified">%4$S</intervallo>.', 'TwentyTen' ),
'Meta-prep meta-prep-autore',
sprintf( '<a href ="%1$S" title ="%2$S" rel ="bookmark"><campata itemprop ="datePublished DateCreated">%3$S</intervallo></un>',
get_permalink(),
esc_attr( get_the_time() ),
get_the_date()
),
sprintf( '<span class ="autore vcard"><un itemprop ="autore" href ="%1$S" title ="%2$S">%3$S</un></intervallo>',
get_author_posts_url( get_the_author_meta( 'ID' ) ),
esc_attr( sprintf( __( 'Guarda tutti i messaggi di% s', 'TwentyTen' ), get_the_author() ) ),
get_the_author()
),
get_the_modified_date()
);
}
}
In functions.php sostituire questo
<div class ="commento-autore vcard">
Con questa
<div class ="commento-autore novcard">
In header.php sostituire questo
<div id ="involucro" class ="hfeed">
Con questa
<div id ="involucro" class ="nohfeed">
In loop.php (3 istanze), loop-single.php, loop-page.php e loop-attachment.php sostituire questo
<div id ="post-<?php the_ID(); ?>" <?php post_class(); ?>>
Con questa
<div id ="post-<?php the_ID(); ?>" <?php post_class(); ?> itemscope itemtype ="https://schema.org / Articolo">
venti Eleven 1.5
com-mento molto presto ...
Annotum Base 1.1.1
In 7 file (funzioni funzionalità articles.php, estratto tipo article.php, estratto estratto-default.php, content tipo article.php, content page.php, content content-default.php, content article-pdf.php) sostituire
<articolo <?php post_class('Article-pieno'); ?>>
con
<articolo <?php post_class('Article-pieno'); ?> itemscope itemtype ="https://schema.org / Articolo">
Thanks — working on it — eisenberg.co.za
Ottimo, grazie mille!