タイトルが暗示するように、私は結果を得るために$ wpdb-> get_resultsを取得するようには思えません。 「生の」クエリを実行することは成功しますが、これは奇妙な未知の理由で失敗しているようです。
global $wpdb;
$sql = "SELECT *
FROM something aki,
somethingelse akb,
somethingelseelse ac
WHERE aki.keyID = akb.keyID
AND akb.someID = ac.someID
AND aki.type LIKE '%thing%'";
$corps = $wpdb->get_results($sql, OBJECT);
var_dump($corps);
問い合わせの前に$wpdb->show_errors( true )
を使って、どんなエラーが戻ってくるか確かめてください。
私の問題は(同じことを経験したことがあるので)、クエリ内で$wpdb->posts
の代わりにwp_posts
を使用する必要があることです。テーブルのプレフィックスは、時間に応じてWPインストールからインストール、または同じインストールでさえ変更できます(たとえば、管理者は好きなときにプレフィックスを変更できます)。それで、そのような質問を書くべきです:
$query = "select <stuff here> from $wpdb->posts where <stuff here>";
少し遅くなるかもしれませんが、wordpressで必要な "prepare"呼び出しが欠けています。
$Table_Name = $wpdb->prefix.'Your Table Name';
$sql_query = $wpdb->prepare("SELECT * FROM $Table_Name WHERE aki.keyID=%d AND akb.someID=%d AND aki.type like %s", akb.keyID, ac.someID, ''%thing%');
$result = $wpdb->query( $sql_query );
配列内に複数の結果があります。