Tri article par date fixé dans Custom fields et péremption (Créer un compte)

  • Statut : non résolu
5 sujets de 1 à 5 (sur un total de 5)
  • Auteur
    Messages
  • #508497
    jbusprod
    Membre
    Initié WordPress
    6 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 3.3.1
    – Version de PHP/MySQL : Celle de WampServer
    – Thème utilisé : En cours de construction
    – Extensions en place : Pleins
    – Nom de l’hebergeur : Se sera Easygiga
    – Adresse du site : http://www.apey.ch (le vieux joomla tout cassé!!)

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

    Je fait actuellement un site pour une association de parents d’élève.
    Il ont des rendez-vous, ces rendez-vous sont saisie sur le site via des articles.
    Un bloc dans la sidebar affiche les rendez-vous par ordre chrono et sans les evenements passé.
    J’ai donc créer un custom fields ‘expiration’ d’apres une idée vue sur le site wp-channel.

    J’arrive a trier mes articles par ordre ascendant de la date fixé dans le custom fields mais je n’arrive pas à retirer de la liste les articles qui sont passé (par rapport a la date d’aujourd’hui).

    L’idée est de viré uniquement dans mon bloc rendez-vous les évènements passés, mais qu’ils soient toujours présent sur le blog. Il serait, je pense, idiot de supprimer réellement l’article.

    voila ma fonction sans le tri des articles « perimé »:

    <?php
    $recentPosts = new WP_Query( array ( 'post_type' => ‘post’, ‘cat’ => ‘7,8’, ‘orderby’ => ‘meta_value’, ‘order’ => ‘ASC’, ‘meta_key’ => ‘expiration’ ) );
    ?>
    <?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
    <li><a href="<?php the_permalink() ?> » rel= »bookmark »><?php the_title(); ?></a></li>
    <?php endwhile; ?>

    Voila le code avec le tri des date « périmé » et ces la que ca déconne, il ne m’affiche plus rien.

    <?php
    $todays_date = date("d/m/Y");
    $expirationdate = get_post_custom_values('expiration');
    ?>
    <?php if ($expirationdate > $today) {
    $recentPosts = new WP_Query( array ( ‘post_type’ => ‘post’, ‘cat’ => ‘7,8’, ‘orderby’ => ‘meta_value’, ‘order’ => ‘ASC’, ‘meta_key’ => ‘expiration’ ) );
    while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
    <li><a href="<?php the_permalink() ?> » rel= »bookmark »><?php the_title(); ?></a></li>
    <?php endwhile; ?>
    <?php } ?>

    Mon idée est de lui dire:  » si la date d’expiration est supérieur à la date d’aujourd’hui tu m’affiche mes

  • .

    Je ne suis pas tres bon développeur php, j’ai plus l’habitude de l’integration html/css !!!

    Si quelqu’un à une idée, et surtout si vous trouver l’idée bien ou si je suis complétement a coté de la plaque.

#828283
jbusprod
Membre
Initié WordPress
6 contributions

UP

#828284
marie_mada
Membre
Maître WordPress
531 contributions
#828285
Guy
Participant
Maître WordPress
14817 contributions

IL y aussi tous les plugins qui gére les events, sinon wordpress lui même gère les articles dans le futur, il suffirait sans ajouter de champs supplémentaire de se servir de la requête WP_Query standard et de ne demander à afficher que ces articles.

post_status (string / array) – use post status. Retrieves posts by Post Status, default value is ‘publish’.

‘publish’ – a published post or page.
‘pending’ – post is pending review.
‘draft’ – a post in draft status.
‘auto-draft’ – a newly created post, with no content.
‘future’ – a post to publish in the future.
‘private’ – not visible to users who are not logged in.
‘inherit’ – a revision. see get_children.
‘trash’ – post is in trashbin (available with Version 2.9).
‘any’ – retrieves any status except those from post types with ‘exclude_from_search’ set to true.

#828286
jbusprod
Membre
Initié WordPress
6 contributions

J’ai trouvé la solution avec ton lien Marie. (Merci)

Voila le code qui vas bien, avec mon custom fields ‘expiration’ au format « 2012/04/23 ».

 ‘post’, ‘cat’ => ‘7,8’, ‘orderby’ => ‘meta_value’, ‘order’ => ‘ASC’, ‘meta_key’ => ‘expiration’ ) );
?>
have_posts()) : $recentPosts->the_post();
$todays_date = date(« Y/m/d »);
$today = strtotime($todays_date);
$expirationdate = get_post_custom_values(‘expiration’);
$expirestringarray = implode($expirationdate);
$expiration_date = strtotime($expirestringarray);

if ( $expiration_date > $today ) { ?>
<li><a href=" » rel= »bookmark »></a></li>

Merci a vous!

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