web-dev-qa-db-fra.com

messages de requête et type de message personnalisé avec clé méta

J'essaie d'interroger le type de message personnalisé ai1ec_event et les messages wordpress normaux de tout-en-un-agenda-calendrier dans un curseur sur ma page d'accueil. Ça marche plutôt bien.

Maintenant, je souhaite interroger uniquement les publications avec la valeur de champ personnalisée "teaser", mais cela ne renvoie que les publications normales, pas les événements.

<?php
query_posts( array(
'post_type'=>array('post','ai1ec_event'),   
'posts_per_page' => 50,
'meta_query' => array(
    array(
        'key' => 'teaser',
        'value' => 'on'        
    )
)
);
?>

Même si je laisse de côté la requête de type post:

<?php
query_posts( array(
'meta_query' => array(
    array(
        'key' => 'teaser',
        'value' => 'on'        
    )
)
);
?>

il ne renvoie que des messages, aucun événement.

1
Sebastian Starke

J'ai bien peur que WP_Query ne puisse pas récupérer (messages avec un champ personnalisé) ou (ailec_even). Vous devrez interroger le premier, puis le second et fusionner ces tableaux. Utilisez WP_Query au lieu de query_posts.

Je viens de l'essayer sur mon installation locale et ce code appelé par index.php sur vingt-douze œuvres (apporte l'article avec le titre "Hello post" et ai1ec_event avec le titre "Event" - les deux avec le champ personnalisé "teaser" avec la valeur "on"

$events_query = new WP_Query( array('post_type' => array('ai1ec_event', 'post'), 'meta_query' => array( array( 'key' => 'teaser', 'value' => 'on' ) )) );
while ( $events_query->have_posts() ) :
    $events_query->the_post();
    echo get_the_title() . '<br/>';
endwhile;

Je dois dire que les deux (post end event) ont été créés par un utilisateur admin - j'ai vérifié le code et il existe une grande partie avec des fonctionnalités personnalisées.

2
david.binda