Problème débile sur meta_query (Créer un compte)

  • Statut : non résolu
15 sujets de 1 à 15 (sur un total de 17)
  • Auteur
    Messages
  • #542541
    Marc-OH
    Participant
    Chevalier WordPress
    253 contributions

    Bonjour,

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

    Je suis confronté à un problème que je n’arrive pas à résoudre depuis plusieurs heures.
    Je cherche à faire un query_posts pour récupérer des post dont le custom field (qui correspond à une date de fin au format YYYYMMDD) est supérieure ou égale à la date du jour au format YYYYMMDD.

    Mon code (ci-joint) ne fonctionne pas et me sort des post qui ne correspondent pas à ma query mais ce qui m’embête c’est que lorsque je modifie la value de ma meta_query par 20141002, tout fonctionne normalement… Donc si quelqu’un voit le problème ! 😉

    <?php wp_reset_postdata();?>
    <?php $yearmonthday = date('Ymd'); ?>

    <?php $args = array(
    'posts_per_page' => 3,
    ‘post_type’ => ‘evenement’,
    ‘meta_query’ => array(
    ‘key’ => ‘fin_evenement’,
    ‘value’ => $yearmonthday,
    ‘compare’ => ‘>=’
    ),
    ‘meta_key’ => ‘fin_evenement’,
    ‘orderby’ => ‘meta_value_num’,
    ‘order’ => ‘ASC’
    ); ?>

    <?php query_posts( $args ); ?>

    #974541
    luciole135
    Participant
    Maître WordPress
    13714 contributions

    Pourquoi utilisez-vous cette fonction query_posts alors que le CODEX précise qu’il ne faut pas l’utiliser ?

    This function isn’t meant to be used by plugins or themes

    http://codex.wordpress.org/Function_Reference/query_posts

    #974542
    Marc-OH
    Participant
    Chevalier WordPress
    253 contributions

    Erreur de ma part. J’ai mis à jour avec WP_Query mais aucune différence sur mon problème…

    #974543
    luciole135
    Participant
    Maître WordPress
    13714 contributions

    faites un

    var_dump($yearmonthday);

    pôur vérifier son format

    #974544
    Marc-OH
    Participant
    Chevalier WordPress
    253 contributions

    Bonjour luciole135,

    var_dump me renvoit :
    string(8) « 20141002 »

    C’est donc le bon format…

    #974545
    luciole135
    Participant
    Maître WordPress
    13714 contributions

    Donc le problème n’est pas situé sur cette partie du code.

    #974546
    Marc-OH
    Participant
    Chevalier WordPress
    253 contributions

    Non mais quand j’echo $yearmonthday j’ai bien 20141002 qui ne passe pas ensuite sur la value de ma meta_query ; alors que quand je mets directement 20141002 sur la value de ma meta_query, tout fonctionne normalement !

    Il y a surement bien un problème de format de passage de variable…

    #974547
    luciole135
    Participant
    Maître WordPress
    13714 contributions

    Ah, c’est certainement car vous fermez la session PHP prématurément !
    supprimez ces fermetures et ouvertures inutiles, pour voir !

     3,
    ‘post_type’ => ‘evenement’,
    ‘meta_query’ => array(
    ‘key’ => ‘fin_evenement’,
    ‘value’ => $yearmonthday,
    ‘compare’ => ‘>=’
    ),
    ‘meta_key’ => ‘fin_evenement’,
    ‘orderby’ => ‘meta_value_num’,
    ‘order’ => ‘ASC’
    ); ?>

    #974548
    Marc-OH
    Participant
    Chevalier WordPress
    253 contributions

    Je viens d’essayer et ça ne résout malheureusement pas le problème… :(

    #974549
    luciole135
    Participant
    Maître WordPress
    13714 contributions

    faite un var_dump sur $args pour voir.

    #974550
    Marc-OH
    Participant
    Chevalier WordPress
    253 contributions

    J’obtiens cela :

    array(6) { [« posts_per_page »]=> int(3) [« post_type »]=> string(9) « evenement » [« meta_query »]=> array(4) { [« key »]=> string(13) « fin_evenement » [« value »]=> string(8) « 20141002 » [« type »]=> string(7) « NUMERIC » [« compare »]=> string(2) « >= » } [« meta_key »]=> string(13) « fin_evenement » [« orderby »]=> string(14) « meta_value_num » [« order »]=> string(3) « ASC » }

    #974551
    luciole135
    Participant
    Maître WordPress
    13714 contributions

    Peut-être un problème sur votre version de PHP ?

    #974552
    Marc-OH
    Participant
    Chevalier WordPress
    253 contributions

    Je suis sur MAMP, PHP version 5.5.10

    #974553
    luciole135
    Participant
    Maître WordPress
    13714 contributions

    essayez une autre version de php ou un problème de configuration de mamp car il n’y a pas d’erreur dans ce code

    #974554
    didier07
    Participant
    Maître WordPress
    1964 contributions
    $yearmonthday = (int)date(‘Ymd’);

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