我有一个分类法叫做城市。我已经使用ACF为此分类法创建了一个名为Country的自定义字段,以便我可以创建一个城市并在仪表板中选择它所属的国家(使用预定义选项选择列表)。
然后我创建我的帖子,并选择它所属的城市。(即巴黎)
在前端,我从ACF自定义字段的值中创建了一个下拉列表,该字段工作正常,如下所示
$field_key = "field_1234564545445";
$field = get_field_object($field_key);
if( $field )
{
echo \'<select name="country">\';
echo \'<option value="">Choose Country</option>\';
foreach( $field[\'choices\'] as $k => $v )
{
echo \'<option value="\' . $k . \'">\' . $v . \'</option>\';
}
echo \'</select>\';
}
这给了我一个分类城市使用的国家列表。所以我得到了一个像法国、意大利、西班牙等国家的列表。不,我试图用这些国家中的一个来查询我的帖子类型,但我无法得到结果。
$args = array(
\'posts_per_page\' => \'12\',
\'post_type\' => \'ARTICLES\',
\'orderby\' => \'date\',
\'order\' => ASC,
\'meta_query\' => array(
array(
\'key\' => \'country\',//Also tried field_1234564545445
\'compare\' => \'=\',
\'value\' => $country,
),
),
\'paged\' => $paged,
);
请给我一个指针
SO网友:wp supprt
好吧,我用另一种方法。
首先,获取分类法的所有术语。如果术语等于请求的值,请将其放入数组中,然后使用此数组执行tax\\u查询。
最终的
$argsc = array(
\'order\' => \'ASC\',
\'hide_empty\' => true,
\'fields\' => \'all\',
);
$termsc = get_terms("cities", $argsc);
$cities_array = array( );
foreach ( $termsc as $cterm ) {
//Get country Customf ield for that term
$thecountry = get_field( \'country\', $cterm );
if($country == $thecountry){
//if custom field == variable from select/search put in array
array_push($cities_array,$cterm->name);
}else{
//do nothing
}
}
ksort( $cities_array);//just sorting
$args = array(
// Arguments for your query.
\'posts_per_page\' => \'12\',
\'post_type\' => \'ARTICLES\',
\'orderby\' => \'date\',
\'order\' => ASC,
\'tax_query\' => array(
array(
\'taxonomy\' => \'cities\',
\'field\' => \'slug\',
\'terms\' => $cities_array,
),
),
\'paged\' => $paged,
);