Ich versuche, Informationen in meiner Datenbank abzurufen. Ich wollte mit dieser Anweisung alle pages
anzeigen, erhalte jedoch eine leere ARRAY
name__
global $wpdb;
$result = $wpdb->get_results (
"
SELECT *
FROM $wpdb->wp_posts
WHERE post_type = 'page'
"
);
echo $result; // display data
Ausgabe:
ARRAY
EDIT: Nachdem ich die folgenden Vorschläge geändert habe, verwende ich diese nun. aber ich bekomme immer noch keine ergebnisse:
global $wpdb;
$posts = $wpdb->wp_posts;
$result = $wpdb->get_results( " SELECT * FROM $posts WHERE 'post_type' = 'page' " );
foreach ($result as $page) {
echo $page->ID.'<br/>';
}
global $wpdb;
$result = $wpdb->get_results ( "
SELECT *
FROM $wpdb->posts
WHERE post_type = 'page'
" );
foreach ( $result as $page )
{
echo $page->ID.'<br/>';
echo $page->post_title.'<br/>';
}
Sie haben ein leichtes Missverständnis:
Wenn Sie $wpdb
aufrufen, erhalten Sie eine Liste der Eigenschaften, die die Kernnamen der Tabellen enthalten:
// The custom prefix from wp-config.php
// only needed for custom tables
$wpdb->prefix
// Tables where you don't need a prefix: built in ones:
$wpdb->posts
$wpdb->postmeta
$wpdb->users
So würde Ihre letzte Abfrage wie so aussehen:
$wpdb->get_results( "SELECT * FROM {$wpdb->posts} WHERE post_type = 'page'" );
Versuchen Sie den folgenden Code. Ich stellte mich dem ähnlichen Problem und löste es, indem ich $ wpdb aus dem Feld 'FROM' entfernte.
global $wpdb;
$result = $wpdb->get_results (
"
SELECT *
FROM wp_posts
WHERE post_type = 'page'
"
);
echo $result; // display data
Mit "leeres Array" meinen Sie ein "leeres Array" oder die Ausgabe "ARRAY". Wenn es das letztere ist, ist es die erwartete Ausgabe. Sie müssen dieses Array durchlaufen und die Ergebnisse entsprechend anzeigen.
Referenz: http://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results