web-dev-qa-db-fra.com

Besoin d'aide pour écrire une requête $ wpdb

J'essaie de faire des recherches dans les méta-messages après la méta, mais je suis nouveau sur MySQL et je ne sais pas comment écrire ma requête. Je peux écrire une requête de base pour les correspondances post_title mais je ne sais pas comment passer correctement d'une table à l'autre.

En pseudo-code, ma requête serait

"SELECT post_id FROM $wpdb->postmeta 
WHERE meta_key LIKE '%$query%' AND post_type = 'project'"

Mon problème est que le post_type est uniquement disponible dans la table posts et je ne sais pas comment établir la connexion entre postmeta et posts pour vérifier si le ID est en fait le type de message correct.

1
Brian

Est-ce ce que vous essayez de faire?

// WP_Query arguments
$args = array (
    'post_type'              => array( 'project' ),
    'meta_query'             => array(
        array(
            'key'       => 'meta_key',
            'value'     => '%$query%',
        ),
    ),
);

// The Query
$query = new WP_Query( $args );
2
Howard E

Je ne suis pas un expert mais essayez celui-ci:

SELECT wp_posts.ID, wp_postmeta.meta_value FROM wp_postmeta
LEFT JOIN wp_posts ON wp_posts.ID = wp_postmeta.post_id
WHERE wp_postmeta.meta_key = '%$query%'
AND wp_posts.post_type = 'project'

ça a fonctionné pour moi

1
Pawel J