web-dev-qa-db-fra.com

Interroger des articles ou obtenir des articles par des champs personnalisés, possible?

Si je devais prendre un post de requête standard.

<?php query_posts('post_type=payment'); while (have_posts()) : the_post();?>

Seulement cette fois, je voudrais interroger le message par 2 champs personnalisés qu’il pourrait contenir.

<?php query_posts('post_type=payment'.get_post_meta($post->ID,'bookingref', true).get_post_meta($post->ID,'customerref', true) ); while (have_posts()) : the_post(); ?>

Ça ne marche pas. Est-ce que quelque chose comme ceci est possible et comment fait-on?

Des idées?

Merveilleux

4
Robin I Knight

Pour interroger les publications par champs personnalisés, vous pouvez utiliser le paramètre 'meta_query'

<?php
$args = array(
'post_type' => 'payment',
'meta_query' => array(
        array(
            'key' => 'bookingref',
            'value' => 'the_value_you_want',
            'compare' => 'LIKE'
        ),
        array(
            'key' => 'customerref',
            'value' => 'the_value_you_want',
            'compare' => 'LIKE'
        )
);
query_posts($args); while (have_posts()) : the_post(); ?>

vous ne pouvez pas utiliser get_post_meta dans la requête car il vous donne la valeur et non la clé et accepte également un ID de publication pour obtenir cette valeur avant que la requête $ post-> id ne soit pas dans l'étendue.

13
Bainternet