Domanda

Ho bisogno di trovare un post con un campo personalizzato x uguale a Y se esiste in un'installazione di WordPress.

devo fare con una semplice query SQL o c'è qualcosa di costruire in che possono aiutarmi a raggiungerlo?

È stato utile?

Soluzione

È possibile utilizzare la WP_Query (); verificare che in questo modo:

$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
}

Spero che questo aiuti.

Altri suggerimenti

Il modo corrente sarebbe qualcosa di simile a questo:

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

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

Basta notare che nel prossimo 3.1 interrogazione per i campi personalizzati è notevolmente migliorata e il cambiamento argomenti, vedere campo personalizzato parametri nel Codex.

Se si desidera utilizzare questo esternamente (secondo i vostri commenti), per mantenere il buon funzionamento si potrebbe fare qualcosa di simile.

<?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>';
?>

Caricamento wp-config.php e wp-db.php dovrebbe essere sufficiente per invocare i metodi $wpdb per interrogare il DB per qualunque dati necessari.

Fammi sapere se hai bisogno di un esempio di query SQL per recuperare i messaggi in base a meta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a wordpress.stackexchange
scroll top