在进入侧栏循环以启动唯一值之前,需要一个循环。您可以运行相同的循环两次rewind_posts()
在这两个循环之间(因此从索引0开始获得原始循环)。
在第一个循环中,循环并将所有值添加到一个数组中,使数组如下所示:
Array(
[0] => \'7011 Trondheim\',
[1] => \'7048 Trondheim\',
[2] => \'7022 Trondheim\',
[3] => \'7011 Trondheim\',
[4] => \'7011 Trondheim\',
[5] => \'7048 Trondheim\',
[6] => \'7022 Trondheim\'
)
请注意,它将具有重复的值,这在这种情况下很好。接下来,让我们使用PHP函数计算我们的值
array_count_values()
这将为我们提供以下结果:
Array
(
[7011 Trondheim] => 3
[7048 Trondheim] => 2
[7022 Trondheim] => 2
)
现在我们有了一个唯一的数组,它也有重复数!
NOTE
我不熟悉ACF,但我想我们可以这样做,以实现我们正在尝试的目标-也未经测试:
<?php
$addresses = array();
if( have_posts() ) {
while( have_posts() ){
the_post();
$city = get_field( \'poststed\' );
$zip = get_field( \'postnummer\' );
if( ! empty( $city ) && ! empty( $zip ) )
$address[] = "{$zip} - {$city}";
}
}
if( ! empty( $addresses ) ) {
$uniqueAddresses = array_count_values( $addresses );
}
rewind_posts(); // Incase needed later.
if( ! empty( $uniqueAddresses ) ) : ?>
<h3>Filter etter postnr:</h3>
<ul>
<?php foreach( $uniqueAddresses as $address => $count ) : // Let\'s loop through our array
// Let\'s split our unique address back in to `poststed` and `postnummer`
// $addressArr[0] => postnummer
// $addressArr[1] => poststed
$addressArr = explode( \' - \', $address );
?>
<li><a href="?postnr=<?php echo $addressArr[0]; ?>"><?php echo "{$address}({$count})"; ?></a></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>