Question

Je dois trouver si un poste avec un champ personnalisé X à Y égale existe dans une installation de wordpress.

dois-je faire avec une simple requête SQL ou est-il construire quelque chose qui peut me aider à y parvenir?

Était-ce utile?

La solution

Vous pouvez utiliser la WP_Query (); de vérifier que comme ceci:

$my_query = new WP_Query();
$my_query->query(array( 'meta_key' => 'X', 'meta_value' => 'Y'));
if ( $my_query->have_posts() ){

     //it exists

} else {
    //it's not here
}

Hope this helps.

Autres conseils

La façon actuelle serait quelque chose comme ceci:

$posts = get_posts(array(
    'meta_key' => 'color',
    'meta_value' => 'blue',
));

if( !empty($posts) ) { // some posts found }

Il suffit de noter que dans les prochains 3.1 Interrogation des champs personnalisés est considérablement améliorée et le changement des arguments, voir Champ personnalisé paramètres dans le Codex.

Si vous souhaitez utiliser cette externe (par vos commentaires), pour garder le pas cher d'opération que vous pourriez faire quelque chose comme ça.

<?php
// You'll need to make sure the path is correct here
include_once 'wp-config.php';
include_once 'wp-includes/wp-db.php';

// Of course update the following line with a more appropriate query
$result = $wpdb->get_results("SELECT * FROM $wpdb->posts"); 

print '<pre>';
print_r( $result ); // Remove and do whatever you need to do
print '</pre>';
?>

Chargement wp-config.php et wp-db.php devrait être suffisant pour faire appel à des méthodes de $wpdb pour interroger la base de données pour toutes les données dont vous avez besoin.

Laissez-moi savoir si vous avez besoin d'un exemple de requête SQL pour récupérer les messages en fonction de méta.

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top