どう表現したらいいのかわからない悩みを抱えています。動的配列を作成し、それを別の配列に含める必要があります。拡大させてください。これが私のコードです:
$myarrayarray = '';
$categoriesTerms = $catlist = rtrim($categoriesTerms,',');
$categoriestocheck = explode(',',$categoriesTerms);
foreach($categoriestocheck as $key=>$value){
$myarrayarray .= "array(";
$myarrayarray .= "'taxonomy' => 'map_location_categories',";
$myarrayarray .= "'terms' => array(".$value."),";
$myarrayarray .= "'field' => 'slug',";
$myarrayarray .= "'operator' => 'AND'";
$myarrayarray .= "),";
}
$myarrayarray .= "array(";
$myarrayarray .= "'taxonomy' => 'map_location_categories',";
$myarrayarray .= "'terms' => array('event'),";
$myarrayarray .= "'field' => 'slug',";
$myarrayarray .= "'operator' => 'OR'";
$myarrayarray .= "),";
echo $myarrayarray;
$locationArgs = array(
'post_type' => 'maplist',
'orderby' => $orderby,
'order' => $orderdir,
'numberposts' => -1,
'tax_query' => array($myarrayarray),
);
$mapLocations = get_posts($locationArgs);
これはエラーを生成しません。データの戻りを制限できません。$myarrayarray 変数を出力すると、ペイントと加圧シリンダーを組み合わせた検索で次のようになります。
array(
'taxonomy' => 'map_location_categories',
'terms' => array('paint'),
'field' => 'slug',
'operator' => 'AND'
),
array(
'taxonomy' => 'map_location_categories',
'terms' => array('pressurized-cylinders'),
'field' => 'slug',
'operator' => 'AND'
),
array(
'taxonomy' => 'map_location_categories',
'terms' => array('event'),
'field' => 'slug',
'operator' => 'OR'
),
コード内の変数の代わりにこれを配置すると、うまく機能します。したがって、変数は不正な形式ではなく、他の配列内で解決されていないだけです。たぶん私はばかで、これは不可能ですか?私は何を間違っていますか?!?!?! これは私を狂気に駆り立てており、解決策の検索をどのように表現するかさえ知りません。