Php 创建自定义WP查询
我在这里碰到了某种绊脚石,我找不到路过去 我正在尝试创建一个自定义的WP查询,它可以按原籍国搜索帖子,同时选择多个国家 我有一个将国家映射到地区的表,因此初始查询将搜索所选地区,并以数组形式返回该地区的所有国家。例如,如果选择非洲,它将返回非洲境内的一系列国家Php 创建自定义WP查询,php,mysql,wordpress,Php,Mysql,Wordpress,我在这里碰到了某种绊脚石,我找不到路过去 我正在尝试创建一个自定义的WP查询,它可以按原籍国搜索帖子,同时选择多个国家 我有一个将国家映射到地区的表,因此初始查询将搜索所选地区,并以数组形式返回该地区的所有国家。例如,如果选择非洲,它将返回非洲境内的一系列国家 if(!empty($_REQUEST['region'])){ $region = $_REQUEST['region']; $regionresult = mysql_query("SELECT * FROM ga
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',
'category' => 'Gallery'
)
)
);
$query = new WP_Query( $args );
我没有得到任何结果。事实上,如果includeecho“$args”代码>,我得到的只是单词“Array”。我也只希望它返回特定类别的结果
我肯定我忽略了一些简单的事情。有人能帮忙吗
谢谢
你试过了吗
'value' => $country_search,
而不是
'value' => '$country_search',
没有引号?我认为问题在于有两个数组对象,这是:
$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 );
应该是这样的:
$country_search = array(mysql_fetch_array($regionresult));
$args = array(
'posts_per_page' => -1,
'meta_query' => array(
'key' => 'Country',
'value' => $country_search,
'compare' => 'IN',
)
);
$query = new WP_Query( $args );
但是,它没有返回任何帖子,而是返回了所有帖子。抱怨
结果证明这是一系列问题的结合:
与其内爆$country\u search\u数组
,还需要
按原样添加到查询中李>
由于它是一个数组,我们不能使用'='
作为比较值。它必须是'IN'
如果没有我在这里得到的帮助,我是不可能弄明白的。再次感谢 您是否尝试过使用print\r($args)
而不是echo$args
?返回以下内容:“数组([posts\u per\u page]=>-1[meta\u query]=>数组([0]=>数组([key]=>Country[value]=>$Country\u search[compare]=>IN))”'value'=>'$country\u search'
应该是不带引号的'value'=>$country\u search
。这会产生以下结果:数组([posts\u per\u page]=-1[meta\u query]=Array([meta\u key]=country[meta\u value]=Array([0]=Array([0]=4[id]=4[1]=阿尔及利亚[国家]=阿尔及利亚[2]=AF[地区]=AF))[compare]=IN])
尝试打印($country\u search)
查看阵列。是的,我一直在来回切换。我现在就在这里: