php - ACF多次返回复选框值

我正在ACF的帮助下在wordpress中建立一个网站,但遇到了一个我似乎无法解决的问题。

我有一个名为“ portfolio”的转发器字段,其中包含3个选择的复选框字段。 我使用它们,以便可以将类添加到div以进行过滤,并且效果很好,但是当我想将选择值显示为列表形式的网页时,它会多次给我相同的值。

例如,我添加了5个div,其中3个具有检查值“ digi”,因此,当我调用复选框值时,我会获得3次列表元素“ digi”。 我真的只想在我的网站上显示3种不同的选择。

我的代码:

<?php

if( have_rows('portfolio') ):
 while ( have_rows('portfolio') ) : the_row();
   $class = get_sub_field('portfolio_img_class');



 foreach( $class as $value ): ?>
    <li><?php echo $value; ?></li>
 <?php endforeach;               


 endwhile;
 else :
   echo "FFS";
 endif;
?>

我用于给div类的其他代码:

<?php if( have_rows('portfolio') ): ?>

                <section class="work">

                <?php while( have_rows('portfolio') ): the_row(); 

                    $image = get_sub_field('portfolio_img');
                    $text = get_sub_field('portfolio_img_text');
                    $link = get_sub_field('portfolio_img_link');
                    $class = get_sub_field('portfolio_img_class');

                    ?>

                    <div class="item-work item-work-portfolio 

                                <?php 
                                foreach ( $class as $value ) {  echo $value . " ";  } ?> 

                                "> 

                        <a href="<?php echo $link; ?>">
                            <img src="<?php echo $image; ?>"/>
                            <div class="work-overlay">
                                <h1 class="work-overlay-title"><?php echo $text; ?></h1>
                            </div>
                        </a>
                    </div> 

                <?php endwhile; ?>

                </section>

            <?php endif; ?>

我尝试了很多事情,但似乎没有任何效果。 我是如此接近,只是硬编码主题中的该死的东西。

编辑:第一个代码的输出:

<ul id="nupud">
 <li><a class="btn" onclick="filterSelection('all')">Kõik</a></li>                                                                        
 <li>digi</li>                                                                               
 <li>disain</li>                                                                               
 <li>digi</li>                                                                                    
 <li>disain</li>                                                                                           
 <li>digi</li>                                                                                           
 <li>disain</li>                                                                                           
 <li>digi</li>                                                                                           
 <li>disain</li>                                                                             
 <li>digi</li>                                                                                          
 <li>disain</li>                                                                                         
 <li>sotsiaalmeedia</li>
</ul>

因此,您可以将所有值存储在单个数组中,然后在该单个数组上使用另一个循环,使用array_unique()函数删除重复的值,并使用array_values()函数为数组重新索引。 然后输出唯一值:

<?
$allValues = array();
if (have_rows('portfolio')):
    while (have_rows('portfolio')) : the_row();
        $class = get_sub_field('portfolio_img_class');
        foreach ($class as $value):
            $allValues[] = $value;
        endforeach;
    endwhile;
else:
    // do nothing
endif;
$uniqueValues = array_values(array_unique($allValues));
foreach ($uniqueValues as $value):
    echo $value . ' ';
endforeach;

转载请注明来自askonline.tech,本文标题:php - ACF多次返回复选框值


 Top