解析外部表参数

时间:2012-06-24 作者:Ty Morton

我有一个客户项目,有职位分配给他们的原籍国。

客户希望能够按大陆和/或地区搜索帖子。

我有一个单独的表,将每个国家分配给其各自的地区,我有一个使用结果数组的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功能。

非常感谢您的帮助。

谢谢

2 个回复
最合适的回答,由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

SO网友:Z. Zlatev

为什么不使用自定义的层次分类法,其中国家是父区域术语的子级?对我来说似乎更合适、更自然。

结束

相关推荐

确定是否有比`Query_Posts()`中要求的更多的帖子?

我正在使用自定义query_posts() 作用我限制了showposts 参数设置为25,那么如果仍有产品(帖子)要加载,如何知道激活分页?我的query_posts() 代码如下所示:$args = array( \'post_type\' => \'product\', \'taxonomy\' => \'product_cat\', \'term\' => $idObj->slug, // category slug