データベース上の情報を検索しようとしています。この文を使用してすべてのpages
を表示したいのですが、空白のARRAY
が表示されます。
global $wpdb;
$result = $wpdb->get_results (
"
SELECT *
FROM $wpdb->wp_posts
WHERE post_type = 'page'
"
);
echo $result; // display data
出力:
ARRAY
_ edit _ :以下の提案を変更した後、現在これを使用しています。しかし、まだ結果が得られません。
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/>';
}
あなたは少し誤解をしています:
$wpdb
を呼び出すと、テーブルのコア名を含むプロパティのリストが表示されます。
// 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
つまり、最終的なクエリは like thisのようになります。
$wpdb->get_results( "SELECT * FROM {$wpdb->posts} WHERE post_type = 'page'" );
次のコードを試してください。私は同様の問題に直面し、 'FROM'フィールドから$ wpdbを削除することによってそれを解決しました。
global $wpdb;
$result = $wpdb->get_results (
"
SELECT *
FROM wp_posts
WHERE post_type = 'page'
"
);
echo $result; // display data
「空の配列」とは、「空の配列」を意味するのか、それとも「ARRAY」の出力を意味するのでしょうか。それが後者の場合、それは期待される出力です。その配列をループしてそれに応じて結果を表示する必要があります。
参照: http://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results