Frage

Ich muss herausfinden, ob ein Beitrag mit einem benutzerdefinierten Feld X gleich Y in einer WordPress -Installation vorhanden ist.

Sollte ich es mit einer einfachen SQL -Abfrage tun oder gibt es etwas, das mir helfen kann, dies zu erreichen?

War es hilfreich?

Lösung

Du kannst den ... benutzen Wp_query(); Um das so zu überprüfen:

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

Hoffe das hilft.

Andere Tipps

Der aktuelle Weg wäre so etwas:

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

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

Beachten Sie nur, dass in der kommenden 3.1 -Abfrage nach benutzerdefinierten Feldern erheblich verbessert wird und Argumente ändern Benutzerdefinierte Feldparameter in Codex.

Wenn Sie dies extern (gemäß Ihren Kommentaren) verwenden möchten, können Sie so etwas tun, um die Operation billig zu halten.

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

Wird geladen wp-config.php und wp-db.php sollte ausreichen, um die anzurufen $wpdb Methoden zum Abfragen der DB nach den Daten, die Sie benötigen.

Lassen Sie mich wissen, ob Sie ein Beispiel für eine SQL -Abfrage benötigen, um Beiträge basierend auf Meta abzurufen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top