- Statut : non résolu
- Ce sujet contient 4 réponses, 3 participants et a été mis à jour pour la dernière fois par
jbusprod, le il y a 13 années et 2 mois.
-
AuteurMessages
-
19 avril 2012 à 9 h 00 min #508497
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.
20 avril 2012 à 9 h 53 min #828283UP
21 avril 2012 à 4 h 18 min #828284Hi
Regarde cette article :
http://www.wpcookies.com/how-to-set-wordpress-post-expiration-date-time/cordialement
21 avril 2012 à 7 h 59 min #828285IL 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.23 avril 2012 à 9 h 19 min #828286J’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!
- .
-
AuteurMessages
- Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.