[Résolu] Créer un lien unique vers le dernier article du blog (Créer un compte)

  • WordPress :5.7
  • Statut : résolu
15 sujets de 1 à 15 (sur un total de 31)
  • Auteur
    Messages
  • #2376365
    CoinCoin
    Participant
    Chevalier WordPress
    116 contributions

    Bonjour,

    Ma configuration WP actuelle

    – Version de WordPress : 5.7.1
    – Version de PHP/MySQL : 7.4.15 / 5.6.50
    – Thème utilisé : Divi Child
    – Extensions en place : Accept Stripe Payments (2.0.44), Akismet Anti-Spam (4.1.9), Feeds for YouTube (1.4), Forum_wordpress_fr (4.2), GDPR Cookie Consent (2.0.1), Google Analytics for WordPress by MonsterInsights (7.17.0), Newsletter, SMTP, Email marketing and Subscribe forms by Sendinblue (3.1.10), No Right Click Images Plugin (3.6), Smash Balloon Instagram Feed (2.9), Sucuri Security – Auditing, Malware Scanner and Hardening (1.8.26), WP Rocket (3.8.8), WP Sitemap Page (1.6.4), Yoast SEO (16.1.1)
    – Adresse du site : https://www.connectaloe.com
    – Nom de l’hébergeur : Apache

    Problème(s) rencontré(s) :

    J’aimerais configurer un lien permanent qui renvoie systématiquement au dernier article de blog. En effet, je me suis créé un arbre à liens et je voudrais y ajouter un bouton qui renvoie au dernier article, sans avoir à modifier mon arbre à liens à chaque publication d’un nouvel article.

    Je me dis que vu qu’il est possible d’insérer les derniers articles dans un widget, ça doit être faisable aussi pour un seul article sur un lien ?

    Merci de votre aide !

    #2376389
    pasglop
    Participant
    Chevalier WordPress
    312 contributions

    Bonjour,

     

    Ce code:

    <ul>
    <?php
        $LastPosts = new WP_Query();
        $LastPosts->query('showposts=1');
    ?>
    <?php while ($LastPosts->have_posts()) : $LastPosts->the_post(); ?>
        <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
    <?php endwhile; ?>
    </ul>

    te permet de construire ton lien avec le dernier post publié.

    Je ne connais pas DIVI, ni son child thème, mais tu dois avoir la possibilité d’insérer ça dans la page que tu souhaites.

     

     

    #2376394
    CoinCoin
    Participant
    Chevalier WordPress
    116 contributions

    Merci bcp pour ça, mais euh j’ai pas tout compris…

    J’insère ça où au juste ?

    Et après c’est quoi le lien vers lequel je dois pointer pour aller sur le dernier article ou plus concrètement, je mets quoi en lien sur le bouton que je crée ?

     

    Merci de ton aide !

     

     

    #2376408
    ferman
    Participant
    Maître WordPress
    4421 contributions

    Bonjour,

    Pasglop vous a donné la méthode (qui fonctionne) mais sans plus d’explications de votre part (comment est fait votre “arbre de liens”, comment voulez-vous insérer ce dernier post, où peut-on voir ça sur le site), je pense qu’il sera difficile d’être plus précis.

    #2376409
    CoinCoin
    Participant
    Chevalier WordPress
    116 contributions

    Merci de cette réponse, du coup je précise !

    La page en question est là : https://www.connectaloe.com/liens/

    C’est donc une page plein de boutons qui renvoie vers mes liens utiles. L’idée est de rajouter un bouton spécifique “Dernier article publié” qui pointerait donc vers… le dernier article publié.

    Et je ne pense pas pouvoir mettre de code tel quel dans un bouton, a priori simplement une URL. C’est là où je bloque du coup…

     

    Merci !

    #2376470
    ferman
    Participant
    Maître WordPress
    4421 contributions

    Bonjour,

    En partant du code de Pasglop, il est possible d’ajouter un bouton “renvoyer vers le dernier article”.  Vous pouvez essayer ce qui suit:

    1. Fonction à coller dans le fichier functions.php d’un thème enfant.
    2. Pour faire apparaître le bouton sur la page souhaitée, le plus simple est d’utiliser un shortcode. Donc par exemple vous mettez dans le contenu de votre page [shortcode_de_coincoin]
    function dernier_article(){
        		
    	$LastPosts = new WP_Query(); 
    	$LastPosts->query('showposts=1');
    	while ($LastPosts->have_posts()) : $LastPosts->the_post(); 
    		$permalink = get_permalink();	
    	echo'<div class="et_pb_button_module_wrapper et_pb_button_6_wrapper et_pb_button_alignment_center et_pb_module ">
    		<a class="et_pb_button et_pb_button_6 et_pb_bg_layout_light" href="'.$permalink.'">Mon dernier article</a>';			
    	endwhile; 
    ;}
    add_shortcode('shortcode_de_coincoin','dernier_article');

    Pour le bouton, on peut reprendre le html et les classes des boutons existant déjà sur la page pour que les CSS du thème s’appliquent automatiquement. Il faudra par contre positionner exactement le bouton sur la page avec des CSS additionnelles et peut être ajuster aux différentes tailles d’écran.

    Le code conduit à un seul article (le dernier) si vous n’avez pas d’article mis en avant autrement vous aurez les deux et dans ce cas il faut légèrement modifier le code (exclure les articles mis en avant). Vous avez un titre (“Mon dernier article “) fixe. Il est possible de remplacer ça par un titre dynamique (le titre de l’article).

     

     

     

     

    • Cette réponse a été modifiée le il y a 4 mois et 3 semaines par ferman.
    #2376517
    ferman
    Participant
    Maître WordPress
    4421 contributions

    J’ai oublié la fermeture de la div. Utiliser ceci:

    function dernier_article(){
        		
    	$LastPosts = new WP_Query(); 
    	$LastPosts->query('showposts=1');
    	while ($LastPosts->have_posts()) : $LastPosts->the_post(); 
    		$permalink = get_permalink();	
    	echo'<div class="et_pb_button_module_wrapper et_pb_button_6_wrapper et_pb_button_alignment_center et_pb_module ">
    		<a class="et_pb_button et_pb_button_6 et_pb_bg_layout_light" href="'.$permalink.'">Mon dernier article</a></div>';			
    	endwhile; 
    ;}
    add_shortcode('shortcode_de_coincoin','dernier_article');

    #2376933
    CoinCoin
    Participant
    Chevalier WordPress
    116 contributions

    Bonjour,

    Merci pour ces précisions !

    Je viens (enfin) de prendre le temps de faire le test ça a l’air de fonctionner, cependant j’ai un bug à l’enregistrement :

    Une erreur est survenue lors de l’enregistrement de votre page. Divers problèmes peuvent provoquer un échec de la sauvegarde, comme un manque de ressources du serveur, des blocages de pare-feu, des conflits de plugins ou une mauvaise configuration du serveur. Vous pouvez essayer de sauvegarder à nouveau en cliquant sur Essayer de nouveau, ou vous pouvez télécharger une sauvegarde de votre page non enregistrée en cliquant sur Télécharger la sauvegarde. Les sauvegardes pourront être restaurées à l’aide du système de portabilité lors de la prochaine édition de votre page.

    Contacter votre hôte et lui demander d’augmenter les variables PHP suivantes peut aider : memory_limit, max_execution_time, upload_max_filesize, post_max_size, max_input_time, max_input_vars. En outre, l’audit du journal d’erreur de votre pare-feu (tel que ModSecurity) peut révéler des faux positifs qui empêchent les sauvegardes de se terminer.

    Enfin, il est recommandé de désactiver temporairement tous les plugins de WordPress et les extensions du navigateur, puis d’essayer de sauvegarder à nouveau pour déterminer si quelque chose cause un conflit.

     

    Ca apparait dès que j’active la visibilité du bouton. Je n’avais encore essayé aucune modification de CSS pour le positionnement et le dimensionnement du bouton donc ça ne vient pas de là… Cela étant, même quand l’erreur apparait, le bouton est visible sur la page, donc c’est un peu bizarre…

    Avez-vous une idée ?

     

    Merci !

     

    #2376936
    ferman
    Participant
    Maître WordPress
    4421 contributions

    Bonjour,

    j’ai un bug à l’enregistrement

    A l’enregistrement de quoi? ça correspond à la mise en place du code dans functions.php? Si c’est le cas, comme je n’observe pas ce problème il sera difficile de vous dire ce qui ne va pas. Pour moi, je me contente de mettre la fonction dans function.php et le lien apparaît.

    J’ai reproduit votre liste de liens, avec le même HTML.Voir la pièce jointe:

    1. vos listes (sans CSS)
    2. vos listes + le lien. Ici le bouton est en double car j’ai un article mis en avant. Voir ma réponse précédente #2376470
    3. vos listes + le lien avec la mise en page.

    EDIT mais on pourra essayer deux autres choses si nécessaire.

    • Cette réponse a été modifiée le il y a 4 mois et 2 semaines par ferman.
    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
    #2376938
    CoinCoin
    Participant
    Chevalier WordPress
    116 contributions

    RAS sur functions.php

    Bug à l’enregistrement = bug à l’enregistrement de la page quand j’ajoute le shortcode dans un bloc code.

    Comme dit le bouton apparait, non centré et pas calibré au niveau de la taille. Le lien fonctionne bien. Mais comme ça me met ce bug j’ai peur que ça ne marche pas réellement partout et que je ne puisse pas faire de modif sur la mise en page…

     

     

    #2376946
    ferman
    Participant
    Maître WordPress
    4421 contributions

    Bonjour,

    Je ne connais pas Gutenberg. J’utilise l’éditeur classique donc pas de blocs. Je vois seulement que les shortcodes dans Gutenberg se mettent dans des blocs “shortcode”. C’est ce que vous avez fait je suppose? Autrement il est possible d’appeler la fonction sans shortcode avec un hook du thème puis de faire la mise en page mais pour Gutenberg, je ne sais pas comment ça marche. Mais il est étonnant qu’un simple shortcode conduise au message d’avertissement que vous voyez.

    J’ai vu que “showposts=1” était signalé comme obsolète. Chez moi ça n’a pas posé de problème mais on ne sait jamais. Vous pouvez essayer de remplacer deux lignes du code par une version plus “moderne”/

    $LastPosts = new WP_Query(); 
    	$LastPosts->query('showposts=1');
    	
    	//remplacer par:
    	
    	$args = array(
            'posts_per_page' => 1 );		
    	$LastPosts = new WP_Query($args); 

    Pour l’aspect, comme le nouveau lien a les mêmes classes que ceux déjà en place, vous devriez déjà avoir un bouton partiellement stylé et pas un simple lien. Pour l’associer aux autres, j’utilise une ligne de jQuery. Si ça vous intéresse, le moment venu, vous pourrez mettre votre bouton en ligne et je pourrai essayer si ça marche dans votre cas .

    #2376953
    CoinCoin
    Participant
    Chevalier WordPress
    116 contributions

    Bonjour,

    Merci pour tout ça. Oui oui, le bouton est déjà stylisé, il n’y a qu’une icône intégrée ainsi que la dimension et la position qui ne sont pas identiques aux autres boutons de la page.

    Malheureusement, le changement de code n’a rien changé, j’ai toujours l’erreur à l’enregistrement…
    Je n’utilise pas Gutemberg non plus, je suis dans Divi. Et dans Divi, les shortcodes sont utilisés directement dans des modules “code”. J’ai déjà utilisé des shortcodes créés via plugins à d’autres endroits sans encombre, je ne sais pas ce qui peut bloquer, c’est vraiment bizarre… 🙁

    #2376954
    ferman
    Participant
    Maître WordPress
    4421 contributions

    Essayez avec une fonction toute simple (style echo ‘toto’). Autrement vous pouvez aussi essayer un hook divi.

    #2376959
    ferman
    Participant
    Maître WordPress
    4421 contributions

    Je viens d’y penser: pour avoir directement le même style que les autres boutons, pour le nouveau il faut laisser une classe déjà existante par exemple celle du lien 5. Donc, dans le HTML que retourne la fonction, remplacer 6 par 5 (deux emplacements: “et_pb_button_6_wrapper” et “et_pb_button_6”). Cela rend les CSS beaucoup plus faciles par la suite. Pour distinguer le nouveau bouton, vous pouvez lui ajouter une id ou une nouvelle classe. Parfois les idées les plus évidentes ne viennent pas immédiatement.

     

    • Cette réponse a été modifiée le il y a 4 mois et 2 semaines par ferman.
    • Cette réponse a été modifiée le il y a 4 mois et 2 semaines par ferman.
    #2376963
    CoinCoin
    Participant
    Chevalier WordPress
    116 contributions

    Alors : pour le style avec les classes existantes effectivement, ça a recopié le bouton au niveau dimensions et cie dans l’éditeur, ça fonctionne bien, il ne manque que le centrage mais ça c’est facile à faire. 🙏🏻

    En revanche (évidemment) j’ai toujours l’erreur.

    Essayez avec une fonction toute simple (style echo ‘toto’). Autrement vous pouvez aussi essayer un hook divi.

    Je ne suis pas sûre d’avoir compris ce que vous vouliez dire. J’ai remplacé

    echo'<div class="et_pb_button_module_wrapper et_pb_button_6_wrapper et_pb_button_alignment_center et_pb_module ">
    		<a class="et_pb_button et_pb_button_6 et_pb_bg_layout_light" href="'.$permalink.'">Mon dernier article</a></div>'

    par echo ‘toto’

    C’était bien ça ? Si oui, j’ai testé, ça affiche ‘toto’ sur ma visualisation mais ça renvoie exactement la même erreur à l’enregistrement…

    • Cette réponse a été modifiée le il y a 4 mois et 2 semaines par CoinCoin.
15 sujets de 1 à 15 (sur un total de 31)
  • Vous devez être connecté pour répondre à ce sujet.