Bug Balise description et wordpress Tag? (Créer un compte)

  • Statut : non résolu
9 sujets de 1 à 9 (sur un total de 9)
  • Auteur
    Messages
  • #475176
    Kariboox
    Membre
    Initié WordPress
    17 contributions

    Bonjour à tous

    Ma configuration WP actuelle
    – Version de WordPress : 2.8.5
    – Thème utilisé : le miens
    – Extensions en place : na
    – Nom de l’hebergeur : na
    – Adresse du site : na

    Problème(s) rencontré(s) : Balise description.

    Bonjour je cherche à faire une balise meta description dynamique. J’ai donc cherché sur internet et j’ai trouvé plusieurs sources mais très curieusement cela ne marche pas du tout de la bonne façon !

    Voici ce que je veux faire :

    <meta name="description" content="<?php if ( is_home() ) { echo bloginfo('description'); } else echo wp_html_excerpt($post->post_content, 170)  ?>/>

    Et en réalité la description ( slogan wp ) n’est pas du tout mise sur mon index.
    Seul les 170 premiers caractères sont appliqué. Alors j’ai pensé que

    { ? bloginfo(‘description’); }

    était mal syntaxé, mais non si je le met tout seul cela appelle bien mon slogan wp dans la balise.
    L’inverse est également vrai :

    echo wp_html_excerpt($post->post_content, 170)

    fonctionne bien tout seul.

    Mais lorsque je les met à la suite avec un if ( is_home() ) cela foire et je n’ai à chaque fois que les 170 caractère sur mon index dans ma balise description.

    J’ai donc vérifier plusieurs fois les syntaxe ou erreur sans trouver. J’ai même fait le même code sur plusieurs lignes avec à chaque fois mais cela change rien. Car je n’ai dans l’absolue aucun retour d’erreur php.

    Alors si quelqu’un connais le soucis? Je veux simplement que ma première page index ai comme description le slogan wp que j’ai renseigner à mon blog via l’interface. Et que toutes les autres pages ai pour description les 170 premiers caractères de la page active.

    Merci beaucoup d’avoir lu mon message.

    Thomas

    #696047
    Kariboox
    Membre
    Initié WordPress
    17 contributions

    sniff personne?

    #696048
    chamomor
    Participant
    Maître WordPress
    1912 contributions

    Je ne comprends pas pourquoi tu veux faire un truc aussi tordu, je crois que tu t’emmêles un peu les pinceaux. La fonction dynamique n’est pas dans les méta balises mais dans ton . C’est là que tu peux coder du conditionnel (genre if home if single etc). Et cela suffira pour que google et autres interprètent correctement.</p> <div class="code-embed-wrapper"> <pre class="language-php code-embed-pre line-numbers" data-start="1" data-line-offset="0"><code class="language-php code-embed-code"><title></title></code></pre> <div class="code-embed-infos"> </div> </p></div> <p>

    #696051
    thalasso
    Membre
    Chevalier WordPress
    495 contributions

    Quant à moi, je me demande pourquoi réinventer la roue ? Il y a un plugin qui s’occupe déjà de cette balise et de bien d’autres choses encore : All in One SEO Pack.

    #696049
    chamomor
    Participant
    Maître WordPress
    1912 contributions
    thalasso wrote:
    Quant à moi, je me demande pourquoi réinventer la roue ? Il y a un plugin qui s’occupe déjà de cette balise et de bien d’autres choses encore : All in One SEO Pack.

    Ma devise: le moins de plugins possible😇
    mais à chacun selon ses besoins

    #696050
    thalasso
    Membre
    Chevalier WordPress
    495 contributions

    Certes, chamomor, mais là, ça ne marche pas, et cela ne peut pas fonctionner.

    En effet, il faut être dans la boucle The Loop pour pouvoir utiliser les valeurs de $post. Sauf erreur de ma part, notre ami de All in One SEO Pack a résolu le problème en tamponnant (bufferisant, si vous préférez) la sortie HTML, puis une fois la page générée, en remplaçant l’entête avec ce qu’il a pu récupérer dans l’article ou la page affichés.

    Autre qualité de ce plugin (qui est loin d’être parfait) : proposer d’ajouter une description personnalisée à chaque article et page qui soient différents du contenu par ailleurs présent. A quoi bon reprendre un contenu automatiquement ? N’importe quel moteur de recherche peut le faire déjà. C’est en proposant une description pertinente qui résume l’article de manière succincte, mais bourrée de mots-clés utiles que celle-ci sera présentée dans les résultats des moteurs de recherche plutôt qu’un bout quelconque de la page.

    Enfin, notons que la meta description ne sert qu’à apparaître dans les résultats de recherche et à fournir à l’Internaute un descriptif pertinent en vue de l’inciter à cliquer sur le lien associé. En aucun cas, elle n’est utilisée par aucun moteur de recherche pour classer ou positionner les résultats.

    Bref, ce hack, même s’il fonctionnait, n’apporte aucune valeur ajoutée par rapport à un plugin existant qui, lui, en apporte une. Alors, encore une fois, pourquoi se casser la tête à réinventer la roue ?

    #696052
    Kariboox
    Membre
    Initié WordPress
    17 contributions

    Merci beaucoup de vos réponses. En faite je pensai que cela était très simple à faire, en effet 2 ligne de code aurai pu remplir le même effet qu’un module je trouvai ca pratique.

    Mais j’ignorai totalement la règle d’utilisation de « if » dans la balise meta. Voyant que cela fonctionnai dans title je pensai naturellement que cela était aussi le cas pour toutes.

    Donc au final vous avez répondu à mon problème merci beaucoup. Je pense que cela servira à d’autre parceque c’est vraiment un détail à connaitre.

    #696053
    viwiv
    Membre
    Maître WordPress
    809 contributions

    Bonjour,

    Moi, je suis comme Chamomor : je n’utilise que des plugins indispensables, je code en dur : ainsi les requêtes sont moins nombreuses, et le site plus rapide. Trop de plugins tuent les plugins, et leur maintien est un casse-tête, surtout si son développeur est défaillant. Donc autant se donner la peine et cultiver son intelligence. 🙂

    J’ai patiemment mis au point ma propre moulinette, rédigée ainsi :

    ID, ‘description’, $single = true); ?>
    ID, ‘tagspage’, $single = true); ?>

    <meta name="description" content="post_excerpt !==  ») { echo strip_tags( $post->post_excerpt); } else { echo wp_html_excerpt($post->post_content, 160); } ?> » />



    <meta name="description" content="post_excerpt !==  ») { echo strip_tags( $post->post_excerpt); } else { echo wp_html_excerpt($post->post_content, 160); } ?> » />
    <meta name="keywords" content=" « />

    <meta name="description" content=" » />
    <meta name="keywords" content=" » />

    <?php if(is_home() || is_single() || is_page()) { echo '’; } else { echo  »; } ?>

    Bien sûr, il faut générer les mots-clefs et utiliser une fonction à placer dans functions.php

    name . ‘,’;
    }
    echo  »;
    }
    ?>

    Après, il suffit d’utiliser un champ personnalié description dans un article, et un champ tags_page pour ajouter des mits-clés à une page.

    Ainsi, à la poubelle, le vilain All In Pack Seo. 😆

    Cerise sur le gâteau : ma solution est rétro-compatible si on a utilisé All In Pack Seo dans le passé.

    Après, ma moulinette semble donner satisfaction à Google, qui référence en un temps bref (10 minutes, c’est déjà trop !) mes articles, même si cette gestion n’est pas le seul facteur déterminant pour l’indexation.

    Cordialement,

    V.

    #696054
    sam05
    Membre
    Initié WordPress
    43 contributions

    Désolé de ressortir ce sujet, très vieux, mais j’ai un problème similaire…

    Je me suis aperçu que « All in one SEO » ne marchait pas tout à fait correctement.

    Les balise description et keyword n’utilisent pas les valeurs données à la rédaction des articles….
    Mais utilisent les valeurs standards…

    Du coup je voudrais faire appel aux valeurs saisies dans ces champs de all in one seo.
    J’ai essayé :

    get_post_meta($post->ID, ‘description’, $single = true)

    Mais visiblement cela ne me renvoi rien du tout.
    Je n’arrive pas à trouver comment accéder à ces champs…

    Merci à ceux qui ont la réponse !

9 sujets de 1 à 9 (sur un total de 9)
  • Vous devez être connecté pour répondre à ce sujet.