Я бы хотел, чтобы в запросе Wordpress был foreach.
$aid=0;
foreach ($QA as $key => $value) {
AND wp_postmeta.post_id IN (
SELECT wp_postmeta.post_id
FROM wp_postmeta, wp_posts
WHERE wp_posts.ID = wp_postmeta.post_id
AND wp_posts.post_status = 'publish'
AND wp_posts.post_type = 'post'
AND wp_postmeta.meta_key = '$key'
AND wp_postmeta.meta_value = '$value'
)
$aid++;
}
Но он не работает таким образом, поэтому я прошу помощи -
Как яможно поставить foreach в запросе sql?
Полный пример кода ниже.
<?php
function query_products($QA) {
global $wpdb;
global $post;
global $pageposts;
$querystr = "
SELECT wp_posts.*, wp_postmeta.*
FROM wp_postmeta, wp_posts
WHERE wp_posts.ID = wp_postmeta.post_id
AND wp_posts.post_status = 'publish'
AND wp_posts.post_type = 'post'
AND wp_postmeta.meta_key = 'country'
AND wp_postmeta.meta_value = 'Denmark'
$aid=0;
foreach ($QA as $key => $value) {
AND wp_postmeta.post_id IN (
SELECT wp_postmeta.post_id
FROM wp_postmeta, wp_posts
WHERE wp_posts.ID = wp_postmeta.post_id
AND wp_posts.post_status = 'publish'
AND wp_posts.post_type = 'post'
AND wp_postmeta.meta_key = '$key'
AND wp_postmeta.meta_value = '$value'
)
$aid++;
}
ORDER BY wp_postmeta.meta_value ASC
";
$pageposts = $wpdb->get_results($querystr, OBJECT);
}
$QA = array (
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3',
);
query_products($QA);
?>