Lister les articles planifiés dans le futur (Créer un compte)

  • Statut : non résolu
8 sujets de 1 à 8 (sur un total de 8)
  • Auteur
    Messages
  • #494423
    Flo563
    Participant
    Chevalier WordPress
    148 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 3.1.1
    – Version de PHP/MySQL : PHP5 MySQL 4
    – Thème utilisé : Thème perso
    – Extensions en place : Futur is now, events calendar
    – Nom de l’hebergeur : OVH
    – Adresse du site : http://www.radiobro.org (serveur de test)

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

    Voici mon contexte :
    Notre association est en train de travailler à créer un nouveau site, et nous utilisons les articles de wordpress comme des « événements » (concerts, fêtes, stages… etc) qui sont donc à venir.

    Pour l’instant nous utilisons la date de publication comme étant la date et heure de l’événement à venir.
    J’ai donc installé le plugin futur is now afin que les articles « planifiés » avec des dates futures apparaissent sur le site.

    Voici mon besoin :
    Je cherche à liste sur la page d’accueil :
    7 articles
    Dans l’ordre du plus récent au plus ancien
    En n’affichant que les articles avec une date de publication à venir (et non pas les articles déjà passés).

    Ce que j’ai essayé pour l’instant c’est simplement la fonction have_posts, couplée au plufin futur is now ça m’affiche bien les articles à venir, mais pas dans le bon ordre, et si je change l’ordre ça m’affiche les articles passés (je synthétise le code pour ne pas vous embrouiller avec mes spécificités d’affichage graphique) :

    <?php if (have_posts()) :
    ?>
    <?php while (have_posts()) : the_post();
    ?>
    <div id="mouvant">
    <span class="prochain">Prochainement</span>
    <p><?php the_time('l j F Y'); ?></p>
    <br /><h1><a href="<?php the_permalink() ?> » rel= »bookmark » title= »<?php the_title_attribute(); ?>« ><?php the_title(); ?></a></h1>
    <?php the_excerpt(); ?>
    <p class="plusinfos"><a href="<?php the_permalink() ?> » rel= »bookmark » title= »<?php the_title_attribute(); ?>« >En savoir plus…</a></p>
    </div>
    <?php
    endwhile;
    ?>
    <?php endif; ?>

    Sauriez vous comment je peux réussir à lister dans l’ordre du plus récent au plus loin dans le temps futur, sans afficher les articles passés.

    Merci d’avance,
    +

    #767410
    Flo563
    Participant
    Chevalier WordPress
    148 contributions

    Personne n’a d’idée ou n’a déjà souhaité faire cela ?

    En cherchant un peu sur toutes les fonctions existantes, je viens de penser à un truc en utilisant le get archives du mois en cours, en bouclant sur ces articles jusqu’à obtenir le premier qui ne soit pas déjà passé, et ensuite faire une boucle à base de get_next_post pour obtenir mes 6 articles suivants.

    Mais bon ça me paraît bien crade, donc si quelqu’un sachant mieux utiliser wordpress a une idée je suis preneur. 🙂

    #767411
    Guy
    Participant
    Maître WordPress
    14817 contributions

    je ne connais pas future is now, mais un moyen de renverser l’ordre des post est de mettre juste avant le if (have_posts()).

    il existe aussi un status future; la modification pourrait être
    je ne sais pas si ça peut aider….

    #767412
    Gueblo
    Participant
    Maître WordPress
    1058 contributions

    grosso modo le plugin « futur is now » annule le comportement de base de wordpress qui consiste à donner le statut « futur » à tout article dont la date de publication n’est pas passée. Et à remplacer ce comportement par un autre comportement qui consiste à leur donner le statut « publié » quelque soit la date de publication.

    De fait, la problématique de l’ordre d’affichage des articles est la même que si tu voulais changer l’ordre des articles publiés dans un wordpress normal qui n’utiliserait pas le plugin « futur is now ».
    Et en l’occurence, dans ce cas « classique », on changerait l’ordre d’apparition des articles en utilisant query_post comme le preconise Guy.

    En mettant order=ASC tu feras apparaitre les articles dans l’ordre chronologique
    en mettant order=DESC tu feras apparaitre les articles dans l’ordre anté-chronologique, c’est-à-dire que, dans ton cas, le 1er article affiché sera celui qui est le plus lointain dans le futur

    #767413
    Flo563
    Participant
    Chevalier WordPress
    148 contributions

    Hum, mais donc si je comprends bien, en retirant mon plugin « futur is now », j’aurai mes « évenements » à venir au statut futur, et ensuite en utilisant donc le query_post en filtrant sur le status futur et en order ASC, je devrai obtenir ce que je souhaite ?

    #767414
    Gueblo
    Participant
    Maître WordPress
    1058 contributions

    disons que si vous utilisez le plugin, tous les articles (passés et futurs) auront le même statut(publié)
    donc si vous souhaitez les differencier, oui, c’est ça, vous devez desactiver ce plugin et utiliser le query post
    attention, toutefois, tous les articles futurs que vous avez créer avec le plugin activé ont un statut « publié » et non « futur ». Ils ne vont donc pas apparaitre. Il faut les remettre en statut « futur »

    #767415
    Flo563
    Participant
    Chevalier WordPress
    148 contributions

    oui j’avais ouvert le code php du plugin et j’avais bien compris que c’était au moment de poster que le plugin jouait son rôle. J’ai replanifié certains de mes articles et désactivé le plugin et je ne les vois plus.

    Je vais donc tenter maintenant le query_post, je vais voir rapidos sous le codex comment l’utiliser.

    #767416
    Flo563
    Participant
    Chevalier WordPress
    148 contributions

    C’est parfait, merci à vous deux, c’est exactement ce que je voulais pour ma page d’accueil, j’espère pouvoir faire la même chose pour mes autres pages.

    Je n’arrive pas à modifier le titre de mon topic pour mettre un tag [résolu]

8 sujets de 1 à 8 (sur un total de 8)
  • Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.