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 テンプレート内で機能させるのに問題があります。

2つを結び付けるのを手伝ってくれる人はいますか? ここで簡単な手順を見落としているか、組み込みの 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 に答える