0

私はここでつまずきのようなものにぶつかり、それを乗り越えることができません。

一度に複数の国を選択して、出身国で投稿を検索するカスタム WP クエリを作成しようとしています。

国を地域にマップするテーブルがあるため、最初のクエリは選択された地域を検索し、その地域のすべての国を配列として返します。たとえば、アフリカを選択すると、アフリカ内の国の配列が返されます。

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 );

結果が返ってきません。実際、 include の場合、echo "$args";返されるのは単に「配列」という単語です。また、特定のカテゴリからの結果のみを返したいと思っています。

私は単純なものを見落としていると確信しています。誰でも助けることができますか?

ありがとう!

タイ

4

2 に答える 2

1

問題は、配列オブジェクトが 2 つあることと、次のことだと思いました。

$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 );

しかし、その後、投稿を返さない代わりに、すべての投稿を返しました。つぶやく!

問題の組み合わせであることが判明しました。

  1. を内破する代わりに$country_search_array、クエリにそのまま追加する必要があります。
  2. これは配列である'='ため、比較値に を使用することはできません。それはする必要があります'IN'

ここで受けた支援がなければ、それを理解することはできませんでした。もう一度、ありがとう!

于 2012-06-24T19:09:53.240 に答える
0

やってみました

'value' => $country_search,

それ以外の

'value' => '$country_search',

引用符なしで?

于 2012-06-24T17:45:08.517 に答える