Annoncer les articles planifiés et éviter les erreurs 404 sur leurs URL

  • WordPress :5.0
  • Statut : non résolu
15 sujets de 1 à 15 (sur un total de 15)
  • Auteur
    Messages
  • #2242588
    Super Bougnat
    Participant
    Initié WordPress
    11 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL : N/A
    • Thème utilisé : Balanced Blog
    • Extensions en place : N/A
    • Nom de l’hébergeur : o2switch
    • Adresse du site : superbougnat.fr

    Sauf erreur de ma part, lorsqu’on tente d’accéder à l’url d’un article planifié (mais pas encore publié, donc), on obtient une erreur 404.

    J’aimerai savoir s’il est possible de remplacer cela par une page expliquant que l’article demandé arrivera bientôt, voir carrément indiquer sa date de publication.
    Il y a bien la solution de programmer une redirection et de la supprimer le moment venu, mais je trouve cela fastidieux et je cherche donc une solution plus simple et surtout automatique, si cela existe.

    Question subsidiaire : existe-t-il un plugin qui permettrait d’afficher sur le site la liste des prochains articles publiés (avec la date bien entendu) ?

    #2242599
    PhiLyon
    Modérateur
    Maître WordPress
    23346 contributions

    Bonjour.

    Après une recherche n’aboutissant que sur une extension non mise à jour, j’ai trouvé ce code à ajouter dans le functions.php de ton thème enfant

    // Affichage articles planifiés
    
    function the_upcoming_posts() { 
    	// The query to fetch future posts
    	$the_query = new WP_Query(array( 
    		'post_status' => 'future',
    		'posts_per_page' => 3,
    		'orderby' => 'date',
    		'order' => 'ASC'
    	));
    
    // The loop to display posts
    if ( $the_query->have_posts() ) {
    	echo '<ul>';
    	while ( $the_query->have_posts() ) {
    		$the_query->the_post();
    		$output .= '<li>' . get_the_title() .' ('.  get_the_time('d-M-Y') . ')</li>';
    	}
    	echo '</ul>';
    
    } else {
    	// Show this when no future posts are found
    	$output .= '<p>No posts planned yet.</p>';
    }
    
    // Reset post data
    wp_reset_postdata();
    
    // Return output
    
    return $output; 
    } 
    // Add shortcode
    add_shortcode('upcoming_posts', 'the_upcoming_posts'); 
    // Enable shortcode execution inside text widgets
    add_filter('widget_text', 'do_shortcode');

    Il suffit ensuite de copier ce shortcode dans un widget texte ou HTML :

    [upcoming_posts]

    Chez moi ça fonctionne, essaies et reviens nous dire ce qu’il en est.

    🙂

     

    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
    #2242618
    Super Bougnat
    Participant
    Initié WordPress
    11 contributions

    Bonjour et merci de ta réponse.

    Ce code fonctionne (je l’ai mis en place, en le modifiant un peu pour un rendu qui me convienne).
    J’ai un léger soucis d’affichage mais je ne sais pas si je peux y faire quelque-chose : la police utilisée n’est pas la même que sur le reste du site (où je n’ai fait aucun réglage particulier de police, j’ai tout laissé par défaut).

    Cependant cela ne résout que ma question subsidiaire (et c’est déjà pas mal).

    Je cherche toujours un moyen de renvoyer vers une page dédiée plutôt que vers une erreur 404 si quelqu’un tente d’accéder à l’url d’un article planifié.

    #2242619
    PhiLyon
    Modérateur
    Maître WordPress
    23346 contributions

    A partir du moment où on ne peut pas cliquer sur le titre de l’article, je ne vois pas le problème.

    Moi j’ai mis le shortcode dans un widget HTML

    🙂

    #2242621
    Super Bougnat
    Participant
    Initié WordPress
    11 contributions

    Ben, le problème arrive quand on saisi l’url (facile à deviner) directement dans le navigateur.

    Du coup, je préfère clairement un message du type “la page que vous demandez arrivera bientôt” plutôt que “la page n’existe pas”. 😉

    Ce n’est pas possible ?

    #2242627
    PhiLyon
    Modérateur
    Maître WordPress
    23346 contributions

    Ça tu peux le faire directement dans la traduction du thème, mais cela changera le message pour toutes les erreurs.

    🙂

    #2242635
    Super Bougnat
    Participant
    Initié WordPress
    11 contributions

    Je ne suis pas certain d’être clair, ou que tu comprennes ma demande. ^^

    Je ne veux pas remplacer la page 404 de manière générale (je l’ai déjà personnalisée).

    Je voudrais que se rendre sur une URL qui existe mais n’est pas encore “publique” (cas des articles planifiés) on ne soit pas renvoyé vers une erreur 404.
    A la place, j’aimerai une AUTRE page d’information.

    En gros :

    URL existe ? > Article en ligne ? > Affichage de l’article
    URL n’existe pas ? > Erreur 404
    URL existe ? > Article planifié > Renvoi vers une page dédiée

    Dans mon post précédent, quand j’écris “message du type”, je veux parler du comportement du site, pas du contenu du message. 😉
    En clair “la page n’existe pas”, ça veut dire affichage de la page 404.

    Je ne sais pas si ma demande est claire…

    #2242637
    PhiLyon
    Modérateur
    Maître WordPress
    23346 contributions

    Ok, il faut créer un template de page spécifique, ça pas trop dur, mais trouver la fonction qui y renvoie, alors là…

    Je vais chercher, mais tu as dû déjà le faire.

    🙂

    #2242640
    Li-An
    Modérateur
    Maître WordPress
    22244 contributions

    Bonjour, on peut savoir dans quelle circonstance vous avez besoin d’une telle fonction ?

    #2242651
    Super Bougnat
    Participant
    Initié WordPress
    11 contributions

    @ PhyLyon : non, je n’ai pas fait cela… Pour tout dire, je ne comprends même pas tout ce que tu as écrit (je ne suis pas du tout familier du concept de templates).

    @Li-An : je pense que la raison est claire, compte tenu des échanges ci-dessus. Il s’agit simplement d’afficher autre chose qu’une erreur 404 pour les personnes qui saisiraient une URL d’un article planifié. Ce n’est pas fondamental, mais je trouverai ça plus agréable qu’une erreur 404.
    Peut-être que ça ne servirait que très rarement, et pour les petits curieux qui feraient mumuse avec les url… Mais je trouverai sympa de leur faire un petit clin d’œil via une page dédiée, tout simplement.

    Le “risque” étant accru par le fait que je diffuse une liste des articles à venir.

    #2242652
    PhiLyon
    Modérateur
    Maître WordPress
    23346 contributions

    Essaies avec cette extension, mais il faudra le faire pour chaque article et supprimer la redirection lors de la mise en ligne.

    Il faut bien-sûr que tu crées une page d’erreur spécifique, avec le texte que tu veux, éventuellement avec une image.

    https://fr.wordpress.org/plugins/redirection/

    #2242653
    Li-An
    Modérateur
    Maître WordPress
    22244 contributions

    Je me demande quelle personne tordue va chercher à voir un article pas publié ??? À mon avis, vous vous fatiguez pour pas grand chose.

    #2242654
    Super Bougnat
    Participant
    Initié WordPress
    11 contributions

    @PhiLyon j’ai bien pensé à passer par “redirection” mais c’est une solution trop fastidieuse, et avec un risque d’erreur si j’oublie de retirer la redirection (j’ai évoqué cette solution dans mon premier message).
    De plus, l’intérêt de planifier un article, c’est juste de ne pas avoir à être là pour le publier (alors ce serait dommage de devoir se connecter pour retirer la redirection).

    Cette solution est donc trop lourde par rapport au service rendu.

    Si aucune solution simple à l’usage n’est possible, ce n’est pas une catastrophe, et j’apprécie votre aide.

    @Li-An les ester egs, l’art, le jeu… Tout cela n’est peut-être pas utile, mais est-ce tordu pour autant ?
    Je cherche à faire “un petit truc rigolo et sympa”, pas quelque-chose de transcendant, indispensable ou innovant.
    J’avoue ne pas bien comprendre vos jugements un rien pompeux, à mon avis.

    #2242664
    Li-An
    Modérateur
    Maître WordPress
    22244 contributions

    Ce n’est pas pompeux, vous avez le droit de vous amuser, mais je préfère vous mettre en garde contre un travail pas très utile (combien de fois avez-vous vous même essayé de visiter une URL qui n’existait pas en espérant  qu’elle existe ?) – le temps sera mieux utilisé à enrichir votre site. J’étais curieux de savoir ce que vous vouliez faire exactement pour pouvoir proposer des solutions si ça correspondait à des demandes connues. Mais vous avez raison, je peux être agaçant.

    #2242666
    Super Bougnat
    Participant
    Initié WordPress
    11 contributions

    Je comprends la démarche, et je suis bien conscient qu’il n’y a rien là de super essentiel.
    Mais j’ai pas mal d’articles programmés, pour 3 mois, donc j’essaye aussi de faire de petits trucs amusants, parce-que cela fiat partie de mon état d’esprit sur ce projet, de ne pas trop me prendre au sérieux.

    Je suis peut-être un cas à part, mais j’aime bien tester des url sur certains sites… Et je consulte pas mal de sites qui obtiennent ainsi des informations sur des produits ou annonces à venir. ^^

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