Limiter sur la Home le nombre de caractères de l'article affiché

Pierrot14Pierrot14 Member
25 avril modifié dans Modifications

Bonjour à tous !

Nouveau pluxeur enthousiaste (franchement pourquoi se prendre la tete avec WP...) j'arrive a quasiment tout faire comme un grand (et mon niveau n'est pas ouf...).

J'ai une question sans réponse malgré mes recherches google et sur ce forum, malgré mes tests de fonctions php bien connu.

En gros je ne souhaite pas utiliser les chapôs (perte de temps dans mon cas) ceci étant dit, si je ne les utilise pas l'article en entier s'affiche sur la home (et du coup duplicate content avec la page de l'article). Du coup j'ai tenté substr en php pour limiter à XXX caractères l'affichage de l'article, j'ai tenté pas mal de choses mais rien ne fonctionne.

Auriez-vous une piste ?

Merci beaucoup d'avance,

Pierre

PS: en bonus si quelqu'un à la solution avant que je mette les mains dans le code pour 'virer' le textarea 'chapo' sur l'ajout d'un nouvel article, je suis preneur :)

Réponses

  • 25 avril modifié

    Bonjour,

    Si tu ne veut pas de chapo/ scinder ton article en 2 , il te suffit de ne remplir qu'un champ .Soit le chapo soit le content.

    Pour le substring, il te suffit de tester si tu est en mode article, et l'activer si ce n'est pas le cas. Nous ne savons pas ce que tu as fait ou tenté pour le moment .
    Attention aussi au fait que substr ne vas pas prendre en compte les balises HTML, tu risques d'avoir des surprises sur la chaine qui reste :) ... un lien couper en plein milieu qui ne se referme pas, ça peut être assez embetant ;) .

    ♣♣♣♣ <°(((((-{ ~ Mon site avec PluXml: https://re7net.com | Mes plugins pour PluXml : https://github.com/gcyrillus }-))))°> ♣♣♣♣

  • Pierrot14Pierrot14 Member
    25 avril modifié

    Merci pour ta réponse Gcyrillus, je vais essayer d'être plus complet :)

    Alors a date je ne remplit que 'article' et pas 'Cahpo' mais mon soucis du coup est que sur la Home j'ai l'intégralité de l'article qui s'affiche, ce qui me pose des soucis de duplicate content. C'est pourquoi sans 'remplir' le 'chapo' je préfère prendre les par exemple 200 premiers caractères d'un article (avec les contraintes que cela impose comme tu l'indiques) .

    Dans mon fichier home.php j'ai donc tenté les choses suivantes :

    <?php $plxShow->artContent(false) ?> <<< version article complet sans chapo

    mes tests :
    <?php substr("$plxShow->artContent(false)", 0, 100)) ?>
    <?php echo substr("$plxShow->artContent(false)", 0, 100); ?>
    <?php substr($plxShow->artContent(false), 0, 100) ?>
    <?php echo substr($plxShow->artContent(false), 0, 100); ?>
    <?php substr('$plxShow->artContent(false)', 0, 100) ?>
    <?php echo substr('$plxShow->artContent(false)', 0, 100); ?>

    Rien ne fonctionne correctement (soit ca ne coupe pas, soit ca affiche un bout de code).

    J'ai aussi tenté avec des fonctions plus 'complètes' (et plus intéressantes) :

    <?php function truncate($text, $chars = 25) {
        if (strlen($text) <= $chars) {
            return $text;
        }
        $text = $text." ";
        $text = substr($text,0,$chars);
        $text = substr($text,0,strrpos($text,' '));
        $text = $text."...";
        return $text;
    }
    ?>
    

    +

    <?php truncate("$plxShow->artContent(false)", 0, 100)) ?>
    <?php echo truncate("$plxShow->artContent(false)", 0, 100); ?>
    <?php truncate($plxShow->artContent(false), 0, 100) ?>
    <?php echo truncate($plxShow->artContent(false), 0, 100); ?>
    <?php truncate('$plxShow->artContent(false)', 0, 100) ?>
    <?php echotruncate('$plxShow->artContent(false)', 0, 100); ?>
    

    Bref je m'en sors pas... :)

  • 25 avril modifié

    Okay, pour le template home.php
    tu peut par exemple faire :

        <?php                       
            echo substr(strip_tags($plxShow->plxMotor->plxRecord_arts->f('chapo') . "\n". $plxShow->plxMotor->plxRecord_arts->f('content') . "\n") , 0, 200).'... ' ;
            $plxShow->artReadMore($format = '');
        ?>
    

    à la place de :

        <?php $plxShow->artChapo(); ?>
    

    Cela devrait éviter les soucis de structure et t'afficher le lien vers l'article.

    si cela te vas, tu peut le refaire pour les autre template, sauf articles bien sur ;)

    Cdt

    ♣♣♣♣ <°(((((-{ ~ Mon site avec PluXml: https://re7net.com | Mes plugins pour PluXml : https://github.com/gcyrillus }-))))°> ♣♣♣♣

  • Merci beaucoup cela fonctionne nickel (sauf le lien vers 'readmore', mais je peux m'en passer !

    Bon effectivement je n'aurais jamais trouvé tout seul, un énorme merci :)

  • 25 avril modifié

    oki,

    en fait , si pas de chapo, pas de lien lire plus , c'est comme pas de bras , pas de chocolat !

    Pour le coté admin, (pas tester)

    Tu peut éventuellement ajouté dans le fichier foot.php , ce morceau de script , pour cacher content et le bouton masquer le chapo.

    <script>
    for (let e of document.querySelectorAll(
      " #toggler_chapo, #id_content ,[for=id_content'] "
    )) {
      e.parentNode.removeChild(e);
    }
    </script>
    

    Sauf si utilises un éditeur, il y a des chance qu'il s'active avant que soit retirer le deuxième champ.

    cdt

    ♣♣♣♣ <°(((((-{ ~ Mon site avec PluXml: https://re7net.com | Mes plugins pour PluXml : https://github.com/gcyrillus }-))))°> ♣♣♣♣

  • Merci beaucoup, du coup pour l'admin, j'ai testé mais vu que j'utilise un éditeur de texte ca ne fonctionnait pas, je suis passé à l'ancienne en commentant le code affichant le textarea du chapo et ca fonctionne nickel

    Encore merci pour le coup de main, c'est parfait !

    Bonne soirée :)

  • Encore merci pour le coup de main, c'est parfait !

    De rien, c'est le forum.

    Merci beaucoup, du coup pour l'admin, j'ai testé mais vu que j'utilise un éditeur de texte ca ne fonctionnait pas, je suis passé à l'ancienne en commentant le code affichant le textarea du chapo et ca fonctionne nickel

    Je m'en doutais un peu, pour afficher le lien de lire la suite avec plxShow->artReadMore($format = ''); , tu devrais cacher content plutôt et cela te permettrai aussi d'utiliser simplement la variable $format ;)

    cdt

    ♣♣♣♣ <°(((((-{ ~ Mon site avec PluXml: https://re7net.com | Mes plugins pour PluXml : https://github.com/gcyrillus }-))))°> ♣♣♣♣

Connectez-vous ou Inscrivez-vous pour répondre.