2Wordpress LogoFixation Rich Snippets outil Test de microdonnées à grande diffusion

Sur 2 il y a quelques années, j'ai publié un article sur la façon de résoudre les problèmes avec les thèmes WordPress qui ne passaient pas par l'outil de test Google Rich Snippets. Depuis lors beaucoup a changé - et la plupart des thèmes WordPress ont un meilleur soutien, HTML5 et CSS3 sont arrivés, et Google, Yahoo et Bing se sont réunis et ont décidé de se concentrer sur microdonnées, via schema.org. Au moment microformats semblait la meilleure façon de marquer des pages, et l'outil de test a reçu le soutien le plus complet pour les. Le passage à microdonnées à grande diffusion et les modifications apportées à WordPress nécessaire un nouvel article: ce qu'il est!

Au lieu d'avoir beaucoup d'articles distincts pour les différents thèmes que j'ai décidé d'essayer de fournir toutes les informations en 1 guider. Cela rend plus facile de tenir à jour, et signifie qu'il est juste 1 point central pour toutes les demandes et discussion. Il est aussi plus judicieux que plusieurs des étapes sont les mêmes quel que soit le thème que vous utilisez. Je ne vais pas couvrir toutes les options disponibles dans cet article, juste les bases pour obtenir votre site à valider avec l'outil. Une fois que vous avez réussi ce que vous devriez trouver ajoutant balisage supplémentaire est relativement facile. Permet donc commencer ...

Ajouter un lien à partir de votre profil Google pour votre site

Vous verrez sur mon pro-fichier google que j'ai un lien de pub-lique à https://diymediahome.org - Vous aurez besoin de la même chose pour votre propre site. Idéalement, vous aurez besoin de tous vos auteurs à avoir un profil de google qui est lié à votre site de la même manière que ce.

  1. Connectez-vous à votre google pro-file
  2. Faites défiler la liste jusqu'à ce que le links section quelque part vers le bas à droite de la page
  3. Cliquez sur le modifier lien
  4. Dans le cadre du contributeur sec-tion clic Ajouter un lien la coutume
  5. Assurez-vous que la case située à droite du texte contributeur est réglé sur public
  6. Entrez votre nom de site (e.g. DIY Médias Accueil) et adresse (e.g. https://diymediahome.org)
  7. Cliquez sur Enregistrer

Ajouter un lien à partir de votre site à votre profil Google

Maintenant, nous devons ajouter un lien à partir de votre page de l'auteur à votre profil Google. Il est 2 altern-à-ive façons de le faire, Je fortement conseillé d'utiliser la Yoast CET Plugin.

  1. Installez le Yoast CET plu-gin OU ajoutez le code suivant dans le fichier functions.php de votre thème
    update_contactmethods de fonction( $contactmethods ) {
    // Ajouter Profils Google
    $ contactmethods[«Googleplus '] = 'Google ';
    // Ajouter Twitter
    $ contactmethods['Twitter'] = __( «Twitter nom d'utilisateur (sans @)», »Wordpress-seo ' );
    
    return $ contactmethods;
    }
    add_filter( «user_contactmethods ', «update_contactmethods ', 10, 1);
  2. Accédez à votre profil d'auteur dans l'interface d'administration de WordPress (survolez Utilisateurs dans le menu de gauche, et cliquez sur Votre Pro-file)
  3. Dans l' Google+ champ ajouter un lien vers votre google pro-file (e.g. https://plus.google.com/104657888470728381512 /)
  4. Assurez-vous que soit vous, ou vos autres auteurs du site font la même chose, et chaque lien à vos propres profils Google
  5. Maintenant, si vous utilisez le Yoast plu-gin, aller à la CET menu et sélectionnez Les titres et les metas, clécher sur le Home menu en haut de la page et dans le Auteur de haute lumière ING boîte déroulant sélectionnez l'utilisateur que vous souhaitez utiliser comme l'auteur de la page d'accueil
  6. Si vous êtes insistante de ne pas utiliser le plugin Yoast vous devrez ajouter manuellement le code suivant à header.php (supposant-ment vous en avez un). Ne pas oublier de changer mon profil Google URL pour le vôtre. Ce code utilisera le profil de l'auteur google url s'il est valide, et utilisera un défaut (la vôtre) s'il n'y a pas.
    <link rel ="auteur" href ="<?php $ gplus = 'https://plus.google.com/115369062315673853712/posts '; si ( is_singular() ) {$ post mondiale; $gplus = get_the_author_meta( «Googleplus ', $post->post_author );} echo $ gplus; ?>"/>

Corriger les erreurs d'un champ manquant "mise à jour"

La plupart des thèmes wordpress comprennent des informations sur le moment où le poste a été publié dans le domaine de l'information de poste, mais très peu comprennent également lors de sa dernière mise à jour. C'est dommage, parce que mis à jour est nécessaire alors publié est en fait pas! Ajoutant qu'il est facile si, et encore, il est 2 moyens, la bonne façon et la manière de hack. Je recommande la bonne façon bien sûr, mais si nécessaire, vous pouvez recourir à la hack. Nous allons aussi changer de microformats aux microdonnées en même temps.

La bonne façon

Nous allons ajouter des informations supplémentaires pour poster des en-têtes, à la fois pour les moteurs de recherche et pour nos vis-it-eurs. Nous aurons besoin de le faire pour les messages, pages, archives et la page d'accueil.

  1. Nous devons trouver le fichier qui contient le code qui génère le lien publié. Ce sera presque certainement utiliser la fonction wordpress get_the_date(). Vous pouvez rechercher dans vos fichiers de thème, ou se référer au thème des détails spécifiques ci-dessous où j'ai fourni des détails pour beaucoup de thèmes
  2. Nous allons vérifier si les dates publiées et mises à jour sont les mêmes. Si elles sont, nous allons juste ajouter le supplément dateUp à jour itemprop mais si elles sont différentes, nous va afficher du texte supplémentaire pour le visiteur
  3. Nous allons ajouter la ci-bas-ment (et le modifier comme il explique)
    <?php si(get_the_date()== Get_the_modified_date()): ?>
    
    //nous allons utiliser le code original seulement avec la classe mise à jour ajoute
    / / Mettre le code d'origine de votre thème ici
    / / Supprimer une catégorie =""
    //ajouter itemprop ="DatePublished dateCreated DateModified" à la HTML balise entourant le get_the_date() fonction
    
    <?php autre: ?>
    
    //nous allons utiliser un peu de code seulement avec la date de mise à jour ajoute
    / / Copier le code d'origine de votre thème ici et puis le modifier comme ci-dessous
    / / Supprimer une catégorie =""
    //ajouter itemprop ="DatePublished dateCreated" à la HTML balise entourant le get_the_date() fonction
    / / Ajouter une nouvelle balise html dans la ligne où vous souhaitez qu'il apparaisse comme ci-dessous
    / / Mise à jour <?php echo get_the_modified_date() ?>
    
    <?php endif; ?>
  4. Vous devez soit comprendre le code du thème original et le modifier, ou consultez les détails ci-dessous pour des thèmes spécifiques.
  5. Vous pourriez avoir à répéter cette édition pour plusieurs fichiers

Le hack

Nous allons tricher et fournir la date de publication de la date de mise à jour, même si le poste a effectivement été mis à jour récemment. Si le poste a été mis à jour alors que nous allons effectivement fournirons des informations incorrectes, mais il sera toujours val-id-mangé. Il est vraiment préférable de le faire correctement si possible, mais si vous êtes insistante sur cette façon de faire lire sur. Comme ci-dessus, nous aurons besoin de le faire pour les postes, pages, archives et la page d'accueil.

  1. Comme ci-dessus, nous devons trouver le fichier qui contient le code qui génère le lien publié. Ce sera presque certainement utiliser la fonction wordpress get_the_date(). Vous pouvez rechercher dans vos fichiers de thème, ou consultez le tableau ci-dessous où j'ai fourni des détails pour beaucoup de thèmes
  2. Trouvez l' HTML élé-ment qui entoure la date (souvent il aura class="published").
  3. Modifier l'élément en supprimant la classe et en ajoutant ce qui suit à la place itemprop="datePublished dateCreated dateUpdated"
  4. Comme ci-dessus, vous pouvez avoir besoin de répéter cette vérification dans plusieurs fichiers

Remplacement des microformats intégrés (car le mélange des formats rich snippet casse les choses)

En wordpress par défaut est encore en utilisant microformat balisage des commentaires, qui semble malheureusement de briser balisage microdonnées de choses comme recettes. La meilleure façon de résoudre ce problème est d'enlever le balisage microformat et le remplacer par microdonnées balisage. Malheureuse-tu-reusement, les fonctions de base wordpress qui produisent ce balisage n'ont pas un filtre ou un crochet situé si cela nécessite un peu de bricolage sur.

Remplacement vcard dans la section des commentaires

  1. Ce que nous allons faire est d'utiliser un commentaire rappel pour modifier la sortie de commentaires. De nombreux thèmes utilisent déjà un rappel que nous pouvons modifier, et pour ceux qui ne le font pas, nous allons ajouter un basé sur l'wordpress par défaut
  2. Vérifiez si vous avez thème a déjà un commentaire rappel - recherche de vos fichiers de thème pour la fonction wp_list_comments. Si elle comprend le code callback= ou 'callback' => il utilise une fonction de rappel qui vous devriez être capable de trouver (proba-blement dans functions.php) en recherchant le nom de la fonction de rappel, qui est la partie après le signe = flèche ou, e.g. wp_list_comments( array( 'callback' => 'twentyten_comment' ) ); ou wp_list_comments('type=comment&callback=bones_comments');. Si ce n'est pas le cas, nous devrons en ajouter un en ajoutant callback=diymh_comment ou array( 'callback' => 'diymh_comment' ) à la ligne.
  3. Si vous avez besoin d'ajouter un commentaire rappel, alors vous aurez besoin d'ajouter le code suivant à functions.php
    function diymh_comment($commentaire, $args, $profondeur) {
    $GLOBALS[«Commentaire»] = $ Commentaire; ?>
    <que <?php comment_class(); ?> id ="li-comment-<?php comment_ID() ?>">
      <div id ="comment-<?php comment_ID(); ?>">
    <div class ="comment-auteur novcard">
    <?php echo get_avatar($commentaire,$size = '48 ',$défaut = '<path_to_url>» ); ?>
    
    <?php printf(__(»<citer class ="fn">%s</citer> <span class ="dit">dit:</envergure>»), get_comment_author_link()) ?>
    </div>
    <?php si ($comment->comment_approved == '0 ') : ?>
    <dans><?php _e("Votre commentaire est en attente de modération.) ?></dans>
    <br />
    <?php endif; ?>
    
    <div class ="comment-meta commentmetadata"><un href ="<?htmlspecialchars php echo( get_comment_link( $comment->comment_ID ) ) ?>"><?php printf(__('% 1 $ s à% 2 $ s'), get_comment_date(),  get_comment_time()) ?></une><?php edit_comment_link(__(»(Modifier)»),'','') ?></div>
    
    <?php comment_text() ?>
    
    <div class ="répondre">
    <?php comment_reply_link(array_merge( $args, tableau(«Profondeur» => $profondeur, 'Max_depth' => $args[«Max_depth ']))) ?>
    </div>
      </div>
    <?php
    }
  4. Vous remarquerez que ce code a une class="novcard" au lieu de l'original class="vcard".
  5. Si votre thème ne possède pas son propre rappel vous devez trouver la fonction de rappel et remplacer toutes les instances de class="vcard" avec class="novcard"

Remplacement hfeed dans l'en-tête

  1. Suivant, nous devons également supprimer toutes les instances de class="hfeed", qui sont générale-ment trouvé dans header.php. Remplacer toutes les occurrences de hfeed avec nohfeed

Remplacement hentry et titre des extraits enrichis

  1. Nous pouvons remplacer ces éléments avec un couple de fonctions soignées ajouté à functions.php
    fonction diymh_replace_hentry($cours){
    si(($key = array_search(«Hentry ', $cours)) !== False) $cours[$clé]= 'Nohentry';
    return $ des classes;
    }
    add_filter(«Post_class ',«Diymh_replace_hentry ');
    
    fonction diymh_microdata_title($titre) {
        retour »<durée itemprop ="nom">. $ Title.</envergure>»;
    }
    add_filter(«The_title ', «Diymh_microdata_title ', 10, 2);

L'addition du type d'informations (e.g. Article, Recette, etc) l'en-tête de l'article

  1. Première, décider quel type de travail que vous publiez - très probablement un article. Jetez un coup d'œil à la liste à schema.org
  2. Trouvez l' HTML étiquette qui con-tient la fonc-tion post_class()
  3. Ajoutez le code itemscope itemtype="https://schema.org/Article" (remplacer l'article si vous avez choisi un autre type de travail)

Enfin, pour éviter de casser tous les styles

  1. Vous devrez modifier le style.css de votre thème et faire une opération de recherche / remplacement de remplacer toutes les instances de .vcard avec .novcard et remplacer toutes les occurrences de .hfeed avec .nohfeed de sorte que nos changements ne pas gâcher tout CSS styl-tion de nos commentaires

Fixation d'autres erreurs

Toutes les autres modifications nécessaires seront détaillées sur une base par thème ci-dessous. Si vous avez un thème qui vous êtes incapable de fixer s'il vous plaît envoyer un commentaire. Si c'est un thème libre s'il vous plaît laissez-moi savoir le nom du thème, et s'il s'agit d'un thème premium, veuillez me le faire savoir afin que je puisse vous fournir une adresse e-mail pour envoyer une copie zippée à.

détails spécifiques à thème

Avant que la réalisation de ces modifications ne pas oublier d'effectuer les étapes pour lier votre profil Google et votre site à l'autre, et installer Yoast CET, ou ajouter le code ci-dessus fournit des.

 

Twenty Ten 1.5

Dans functions.php remplacer cette

fonction twentyten_posted_on() {
printf( __( »<span class ="%1$s">Posté le</envergure> %2$s <span class ="méta-sep">by</envergure> %3$l ', «Twentyten ' ),
«Méta-prep-auteur méta-prep ',
sprintf( »<un href ="%1$s" title ="%2$s" rel ="signet"><span class ="entrée jour">%3$s</envergure></une>»,
get_permalink(),
esc_attr( get_the_time() ),
get_the_date()
),
sprintf( »<span class ="auteur vcard"><une classe ="URL fn n" href ="%1$s" title ="%2$s">%3$s</une></envergure>»,
get_author_posts_url( get_the_author_meta( «ID» ) ),
esc_attr( sprintf( __( «Voir tous les messages de% s ', «Twentyten ' ), get_the_author() ) ),
get_the_author()
)
);
}

Avec ce

fonction twentyten_posted_on() {
si(get_the_date()== Get_the_modified_date()){
printf( __( »<span class ="%1$s">Posté le</envergure> %2$s <span class ="méta-sep">by</envergure> %3$l ', «Twentyten ' ),
«Méta-prep-auteur méta-prep ',
sprintf( »<un href ="%1$s" title ="%2$s" rel ="signet"><durée itemprop ="DatePublished dateCreated DateModified">%3$s</envergure></une>»,
get_permalink(),
esc_attr( get_the_time() ),
get_the_date()
),
sprintf( »<span class ="auteur vcard"><un itemprop ="auteur" href ="%1$s" title ="%2$s">%3$s</une></envergure>»,
get_author_posts_url( get_the_author_meta( «ID» ) ),
esc_attr( sprintf( __( «Voir tous les messages de% s ', «Twentyten ' ), get_the_author() ) ),
get_the_author()
)
);
}
autre{
printf( __( »<span class ="%1$s">Posté le</envergure> %2$s <span class ="méta-sep">by</envergure> %3$s.  Updated <durée itemprop ="DateModified">%4$s</envergure>.», «Twentyten ' ),
«Méta-prep-auteur méta-prep ',
sprintf( »<un href ="%1$s" title ="%2$s" rel ="signet"><durée itemprop ="DatePublished dateCreated">%3$s</envergure></une>»,
get_permalink(),
esc_attr( get_the_time() ),
get_the_date()
),
sprintf( »<span class ="auteur vcard"><un itemprop ="auteur" href ="%1$s" title ="%2$s">%3$s</une></envergure>»,
get_author_posts_url( get_the_author_meta( «ID» ) ),
esc_attr( sprintf( __( «Voir tous les messages de% s ', «Twentyten ' ), get_the_author() ) ),
get_the_author()
),
get_the_modified_date()
);
}
}

Dans functions.php remplacer cette

<div class ="comment-auteur vcard">

Avec ce

<div class ="comment-auteur novcard">

Dans header.php remplacer cette

<div id ="bande" = de classe"hfeed">

Avec ce

<div id ="bande" = de classe"nohfeed">

En loop.php (3 cas), boucle-single.php, boucle-page.php et boucle-attachment.php remplacer ce

<div id ="post-<?php the_ID(); ?>" <?php post_class(); ?>>

Avec ce

<div id ="post-<?php the_ID(); ?>" <?php post_class(); ?> itemscope itemtype ="https://schema.org / article">
vingt Onze 1.5

com-ment très bientôt ...

Annotum base 1.1.1

Dans 7 fichiers (fonctions caractéristiques-articles.php, extrait type article.php, extrait extrait-default.php, contenu type article.php, contenu page.php, contenu content-default.php, contenu article-pdf.php) remplacer

<article <?php post_class(»Article intégral»); ?>>

avec

<article <?php post_class(»Article intégral»); ?> itemscope itemtype ="https://schema.org / article">

 

Leave a Reply

2 Comments