Iveはメタ/カスタムフィールド値としてXを持つすべての投稿を検索するクエリを作成しました。PHP/MySQLクエリーはフィールドに文字列を見つける
// PSV National Query
if ($_POST['vehicleType'] == 'psv' && $_POST['coverageRegion'] == 'national') {
$customkey = 'vehicleType';
$customvalue = $_POST['vehicleType'];
$customkey1 = 'coverageRegion';
$customvalue1 = $_POST['coverageRegion'];
$customkey2 = 'locationType';
$customvalue2 = $_POST['locationType'];
global $wpdb;
$my_posts = $wpdb->get_results("
SELECT $wpdb->posts.*
FROM $wpdb->posts, $wpdb->postmeta, $wpdb->postmeta AS mt1
WHERE $wpdb->posts.ID = $wpdb->postmeta.post_id
AND $wpdb->postmeta.meta_key = '$customkey'
AND $wpdb->postmeta.meta_value = '$customvalue'
AND mt1.meta_key = '$customkey1'
AND mt1.meta_value = '$customvalue1'
AND mt2.meta_key = '$customkey2'
AND mt2.meta_value = '$customvalue2'
AND $wpdb->posts.post_status = 'publish'
AND $wpdb->posts.post_type = 'post'
ORDER BY $wpdb->posts.post_date DESC
");
$args = array(
'meta_query' => array(
array(
'key' => $customkey,
'value' => $customvalue,
'compare' => '='
),
array(
'key' => $customkey1,
'value' => $customvalue1,
'compare' => '='
),
array(
'key' => $customkey2,
'value' => $customvalue2,
'compare' => '='
)
)
);
$query = new WP_Query($args);
foreach ($query as $post) :
setup_postdata($post);
echo '<div><a href="';
the_permalink();
echo '"></div>';
the_title();
endforeach;
}
私のポストでは、各メタキーに1つの値があり、これは問題なく動作しますが、複数の値を設定したいと考えています。
例えば...
"ガス、電気、水道、"
クエリはnullを返しますが、私は複数の値を追加すると
postmeta.meta_value = '$customvalue'
...場合イムが言っているので、私はそのをpresumer
誰かがどこに間違っているのかアドバイスできますか?
を経由して設定された値を持つ変数であり、@guzzie私のフィールド内で一致するものを検索するには... – Liam
'get_post_custom'を使って出力を試しましたか?http://codex.wordpress.org/Function_Reference/get_post_custom、デバッグをオンにする、http://debugggg.wordpress.com/ – Wyck