我在这里碰到了某种绊脚石,我找不到克服它的方法。
我正在尝试创建一个自定义的WP查询,它可以按原籍国搜索帖子,同时选择多个国家。
我有一个将国家映射到地区的表,因此初始查询将搜索所选地区,并以数组形式返回该地区的所有国家。例如,如果选择非洲,它将返回非洲境内的一系列国家。
if(!empty($_REQUEST[\'region\'])){
$region = $_REQUEST[\'region\'];
$regionresult = mysql_query("SELECT * FROM gallery_regions WHERE region=\'$region\'") or die(mysql_error());
$num_rows = mysql_num_rows($regionresult);
if (!$regionresult) {
$message = \'Invalid query: \' . mysql_error() . "\\n";
$message .= \'Whole query: \' . $query;
die($message);
}
} else {
$region = NULL;
}
这部分工作正常。
现在,我想使用返回数组来搜索我的WP帖子,查找来自数组中任何国家的帖子。这是我无法完成的部分:
$country_search = array(mysql_fetch_array($regionresult));
$args = array(
\'posts_per_page\' => -1,
\'meta_query\' => array(
array(
\'key\' => \'Country\',
\'value\' => \'$country_search\',
\'compare\' => \'IN\'
)
)
);
$query = new WP_Query( $args );
我没有得到任何结果。事实上,如果包括
echo "$args";
, 我得到的只是“数组”这个词我也只希望它返回特定类别的结果。
我肯定我忽略了一些简单的事情。有人能帮忙吗?
谢谢
泰
最合适的回答,由SO网友:Samiul Amin Shanto 整理而成
尝试以下代码:
$country_search_array = array();
while($row = mysql_fetch_array($regionresult)){
$country_search_array[] = $row[\'country\']; // Your country field name
}
$country_search = "\'".implode("\',", $country_search_array)."\'";
$args = array(
\'posts_per_page\' => -1,
\'meta_query\' => array(
array(
\'key\' => \'Country\',
\'value\' => $country_search,
\'compare\' => \'IN\'
)
)
);
$query = new WP_Query( $args );
SO网友:Ty Morton
问题是有两个数组对象:
$country_search = array(mysql_fetch_array($regionresult));
$args = array(
\'posts_per_page\' => -1,
\'meta_query\' => array(
array(
\'key\' => \'Country\',
\'value\' => \'$country_search\',
\'compare\' => \'IN\',
\'category\' => \'Gallery\'
)
)
);
$query = new WP_Query( $args );
应该是这样的:
$country_search = array(mysql_fetch_array($regionresult));
$args = array(
\'posts_per_page\' => -1,
\'meta_query\' => array(
\'key\' => \'Country\',
\'value\' => \'$country_search\',
\'compare\' => \'IN\',
\'category\' => \'Gallery\'
)
);
$query = new WP_Query( $args );