1

我有一个客户项目,其帖子分配给他们的原籍国。

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

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

任何帮助表示赞赏。

谢谢!

4

1 回答 1

1

将此添加到您的functions.php

add_filter( 'query_vars', 'addnew_query_vars', 10, 1 );
function addnew_query_vars($vars)
{   
    $vars[] = 'region'; // region is the variable you want to add       
    $vars[] = 'anotherVar'; 
    return $vars;
}

然后得到它

$region=get_query_var('region')

更新

$regions = $wpdb->get_results("SELECT ".$region." FROM `".$wpdb->regions."`");
if($regions)
{
    foreach($regions as $region)
    {
        // your code
    }
}
于 2012-06-24T04:40:53.323 回答