webleads-tracker

WordPress & Référencement naturel
Mes servicesWordPress - Référencement
Hébergement WordPress
Vous êtes ici : SeoMix » WordPress » Hacks, fonctions et snippets WordPress » Détecter une page de commentaire sur WordPress

Détecter une page de commentaire sur WordPress

Après une petite pause dans les articles et un TekNSEO plus que réussi, voici une petite fonction WordPress bien utile : détecter si l'on est sur une page de commentaire

Une page de quoi ?

Dans les réglages de WordPress, vous avez la possibilité d'activer une option relative aux commentaires de WordPress. Celle-ci permet de diviser les commentaires d'un article en sous-pages.

Administration de WordPress : pages de commentaires

Le menu d'administration pour activer les pages de commentaires

Je ne recommande pas cette option pour des problématiques de référencement naturel. Pourquoi ? Tout simplement pour ces deux raisons :

  • vous dupliquer le contenu de votre article qui est recopié sur chaque page de commentaire.
  • vous diminuez la pertinence de l'article principal en "déplaçant" des contenus pertinents sur de nouvelles URL.

Certes, cela peut (parfois) améliorer l'ergonomie de votre site, ou encore réduire le temps de chargement, mais cela vous portera préjudice plus qu'autre chose.

La détection de la page de commentaire

Cependant, si vous êtes amenés à activer ce genre d'options, vous pourriez avoir besoin de détecter la présence de ce type de contenus. La raison en est simple : les pages de commentaires utilisent le même template que celui de l'article (ou du post_type), c'est à dire single.php.

C'est justement cela qui provoque la duplication de votre contenu entre la page principale de l'article et toutes les sous-pages de commentaires.

Il n'existe pour le moment pas de tag conditionnel pour savoir si on se trouve sur ce type de contenus. Pour détecter le fait d'être sur une page de commentaire sur WordPress, voici un code très simple à utiliser :

/**
    Détecter une page de commentaire sur WordPress
    */

$cpage = get_query_var( 'cpage' );
if ( is_singular() && $cpage > 0 ){
    // Votre code
}

Le code fonctionne pour les articles, les pages, les attachments ainsi que tous les post_types que vous auriez pu créer.

Pourquoi faire ?

Avec ce petit bout de code, vous saurez donc si vous vous trouver sur une page de commentaire. Libre à vous ensuite de modifier l'affichage du contenu en fonction, par exemple pour

  • modifier le contenu pour ne plus dupliquer l'article en lui-même
  • modifier l'affichage
  • ...

Cela vous évitera de nombreuses problématiques de duplications de contenus...

This is WordPress

This is WordPress

Rassurez-vous par contre : si cette option est désactivée, WordPress fera naturellement une redirection 301 des pages de commentaires vers l'article associé.

Les thèmes relatifs

Voici les thématiques abordées par Détecter une page de commentaire sur WordPress:

  • Conditionnal Tags
6 commentaires
  1. Arnaud
    15 messages

    Arnaud - Le 21 mars 2013, 09:17

    Bonjour Daniel,

    Après vérification, option désactivée sur mon site :)
    Mais je ne savais pas qu’elle était disponible, en faite je n’en n’avais pas entendu parlé et c’est vrai qu’une fois de plus se pose le problème de duplication de contenu sur WordPress, ou plutôt du bonne utilisation du CMS par nous-même.

  2. Bruno
    4 messages

    Bruno - Le 21 mars 2013, 12:02

    Bonjour,

    Au risque de passer 5 minutes pour un idiot, je ne suis pas sûr d’avoir tout-à-fait compris l’intérêt de la manœuvre.
    C’est bien pour un blog sur lequel les commentaires étaient divisés en plusieurs pages et qu’on a décidé de faire marche arrière, non?

    Merci d’avance,

    Bruno

  3. Julio Potier (BoiteAWeb.fr)
    49 messages

    Julio Potier (BoiteAWeb.fr) - Le 21 mars 2013, 13:38

    Hello

    J’aime bien ce genre d’astuce car effectivement, WordPress ne détecte pas ce template, pas de tag conditionnel. Peut-être en faudrait-il un ?
    Par contre, ce qui manque ici c’est un cas concret et utile.
    Alors je me permets de te le donner, une astuce entière. Le code suivant est à mettre dans un « mu-plugins » (voir http://www.boiteaweb.fr/ajouter-astuces-site-6606.html) :

    add_filter( 'template_include', 'baw_template_include' );
    function baw_template_include( $template )
    {
        $cpage = get_query_var( 'cpage' );
        if ( is_singular() && $cpage > 0 )
            $template = get_paged_template();
        return $template;
    }

    Dans le cas cité par l’article, c’est à dire une pagination de mes commentaires, je vais dire à WordPress qu’en fait, j’aimerais qu’il utilise le template « paged.php » de mon thème. Je pourrais très bien lui dire d’utiliser « page.php » ou même pousser plus loin en lui demandant d’utiliser une page avec un modèle perso comme « page-perso.php ».
    J’utilise le hook « template_include » qui intervient juste après le choix que WordPress a fait, mais AVANT d’inclure son choix. Ici nous sommes donc encore dans « single.php ». Avec le code de Daniel posé dans le hook, je peux affecter dans $template une nouvelle valeur.
    Ici j’ai mis « get_paged_template() » qui retournera « paged.php », ce qui revient à faire « get_query_template(‘paged’); » dont vous pouvez faire « get_query_template(‘page-perso’); » (pas de .php !)
    Voilà, maintenant, vous savez détourner un template ;)

  4. lereferenceur
    20 messages

    lereferenceur - Le 21 mars 2013, 17:25

    @Bruno : C’est dans le cas où tu actives l’option destiné à divisé les commentaires en page.
    Admettons tu as 2 pages de commentaires. Avec ce code, tu peux modifier le contenu (par exemple) par rapport à ta page principale et ainsi éviter le DC. (ERnfin si j’ai bien compris)

    Mais bon je ne vois pas trop quoi et comment modifier mon contenu pour que cela reste logique pour l’internaute.

    En tout cas ce code peut en aider plus d’un. Pour ma part je n’active pas cette option.

  5. Greg
    17 messages

    Greg - Le 21 mars 2013, 20:14

    Ma petite pierre à l’édifice :

    // Prints a "noindex,nofollow" meta in head for paged comments
    add_action( 'wp_head', 'no_robots_for_paged_comments', 1 );
    function no_robots_for_paged_comments() {
        if ( isset( $_GET['replytocom'] ) || '0' == get_option('blog_public') )
            return;
        if ( is_singular() && get_query_var( 'cpage' ) > 0 )
            wp_no_robots();
    }

    Ce petit bout de code ajoute la meta robots « noindex,nofollow » sur les pages de commentaires. Au préalable je m’assure qu’elle n’a pas déjà été ajoutée par WordPress lui-même. Ainsi, seule la page principale de l’article serait indexée (si Google écoute ce qu’on lui dit ^^).

    Ton avis Daniel, bien ou pas bien ?

  6. Laurent Matignon
    5 messages

    Laurent Matignon - Le 28 mars 2013, 16:32

    Sur un de mes sites WordPress j’avais eu un gros souci, l’article en question avait reçu énormément de commentaires… et ne pouvait tout simplement plus se charger. J’avais donc été contrait d’activer l’option de pagination des commentaires. Franchement, j’avais joué à l’apprenti-soricer avec ce site et je n’ai jamais creusé le pourquoi du comment le site ne pouvait pas encaisser un article avec une cinquantaine de commentaires, mais il est clair que je rejoins l’unanimité ici, il vaut mieux ne pas activer cette option.

» Commentez cet article !
(Merci de donner un vrai prénom)
(Ne sera jamais publié)
(Modèration subjective)
Html accepté <a> <i> <b> [codesyntax]CODE[/codesyntax]
» Prévisualisez votre message

© 2010-2012 SeoMix : WordPress & Référencement
Propulsé par WordPress et Daniel Roch. Logo créé par Willy-Bahuaud

Indispensable
WordPress
A propos de SeoMix
Mes servicesWordPress - Référencement
Suivez-nous !
  • 8225 abonnés
  • 195 articles
  • 4525 messages
Vous devriez lire
Seo et emarketing
Les amis
598818fd51e1af85a740d19e6dd3f182........................