我有一个客户项目,有职位分配给他们的原籍国。
客户希望能够按大陆和/或地区搜索帖子。
我有一个单独的表,将每个国家分配给其各自的地区,我有一个使用结果数组的WP查询:
$country_names = array(\'England\',\'France\',\'Germany\',...); // this would be the result from fetching countries associated with a region.
$args = array(
\'posts_per_page\' => -1,
\'meta_query\' => array(
array(
\'key\' => \'country\',
\'value\' => $country_names,
\'compare\' => \'IN\'
)
)
);
$query = new WP_Query( $args );
我遇到的问题是中间的在中间。通常,我会使用一些标准的PHP/MySQL来构建数组:
<?php
//Process incoming variable
if(!empty($_REQUEST[\'region\'])){
$region = $_REQUEST[\'region\'];
} else {
$region = NULL;
}
// Make a MySQL Connection
$query = "SELECT * FROM regions WHERE region=\'$region\'";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result) or die(mysql_error());
echo $row[\'country\'];
?>
然而,我很难在WP模板中工作,因为WP使用自己的内部函数管理传入的变量。
有人能帮我把这两者联系起来吗?我确信我忽略了一些简单的步骤,否则我没有使用一些内置的WP功能。
非常感谢您的帮助。
谢谢
泰
最合适的回答,由SO网友:Ty Morton 整理而成
我创建了一个新模板,并从头开始使用它。我仍然无法让新的WP查询返回任何帖子,但它确实解决了这个最初的问题。
首先,我得到了我的结果:
if(!empty($_REQUEST[\'region\'])){
$region = $_REQUEST[\'region\'];
} else {
$region = NULL;
}
if (empty($region)) {
echo "No region selected";
}else{
$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);
}
$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 );?>
可在此处查看结果:
http://www.tylonius.com/gallery-test.html