2017-04-11 20 views
0

function.phpで以下のコードを使用してWordPressプロジェクトにカスタムクエリ変数を追加しています。WordPressのクエリ変数に複数の値を追加する

<?php 
function add_custom_query_var($vars){ 
    $vars[] = "brand"; 
    return $vars; 
} 
add_filter('query_vars', 'add_custom_query_var'); 
?> 

そして、コンテンツページで私が使用しています:

<?php echo $currentbrand = get_query_var('brand'); ?> 

をだから今、私はのようなURLを渡すことができます:

http://myexamplesite.com/store/?brand=nike

と結果にナイキを取得します。

ブランドに複数の値を渡すにはどうすればよいですか?ですから、私はブランド、ナイキ、アディダス、森林地帯の3つの価値を持ちたいと思っています。

私は次のことを試してみましたし、それらのどれも機能しません:

  1. http://myexamplesite.com/store/?brand=nike&brand=adidas&brand=woodland それはちょうど、この場合の森林地帯には、最後のブランドを返します。

  2. http://myexamplesite.com/store/?brand=nike+adidas+woodland これは3つすべてをスペースで返します。私はこれが正しい解決策ではないと考えています。クエリ変数の複数の値を渡し、配列内でそれらを取得する正しい方法があるので、ループを実行できるようにすることができます。

答えて

1

このようにクエリパラメータを渡す必要があります。

brand1 =ナイキ& brand2 =アディダス& brand3 =だから、森林

、ページ上の各ブランド

ごとに異なるキー、

$params = $_GET; 
$brands = array(); 
foreach($params as $k=>$v) { 
    if(substr($k,0,5)=="brand") { 
     $brands[] = $v; 
    } 
} 

値が供給また

2番目の方法を使用する http://myexamplesite.com/store/?brand=nike+adidas+woodland

$brands = explode(" ", $_GET['brand']); 

代替方法は、簡単に

+0

感謝を探します。異なるキーが機能します。しかし、単一のキーで可能かどうかを知りたい。 –

+0

@KiranDashは答えを更新しました。代替方法はあなたが探しているものです –

+0

私はこれと一緒に行くと思います。しかし、私がここで本当に探していたのは、WordPressにこのためのソリューションが組み込まれている場合でした。私は存在しないと思います –

関連する問題