2017-06-13 67 views
-1

我在嘗試顯示使用ACF創建的複選框值時遇到了一些問題。 我有一組與ACF,其中每個複選框是一個月做12個複選框: 1月:一月/二月:二月/三月:三月/等在前面顯示來自ACF(Wordpress)的複選框值

我需要實現的是顯示所有12如果在後端檢查月份,則使用特定的CSS類。例如,如果用戶檢查「月」,「月」,「月」和「月」:

<span class="selected">Jan</span> 
<span>Feb</span> 
<span>Mar</span> 
<span class="selected">Apr</span> 
<span>May</span> 
<span>Jun</span> 
<span class="selected">Jul</span> 
<span>Ago</span> 
<span class="selected">Sep</span> 
<span>Oct</span> 
<span>Nov</span> 
<span>Dec</span> 

使用從文檔示例代碼(https://www.advancedcustomfields.com/resources/checkbox/),我只獲得所選個月,但不是所有的月份在前端:

<span>Jan</span> 
<span>Apr</span> 
<span>Jul</span> 
<span>Sep</span> 

回答

0

請檢查下面的代碼和輸出它可以幫助你。

<?php $allCheckbox = get_field('month_checked_boxes'); //Checked value from backend 

$field_key = "field_593f77cdc5068"; //Get value using key 
$post_id = get_the_ID(); 
$field = get_field_object($field_key, $post_id); 
foreach($field['choices'] as $lab => $val){ 
if(in_array($val, $allCheckbox)){ 
    $checked = 'checked = "checked"'; 
    $enable = '';  
} else { 
    $checked = ''; 
    $enable = 'disabled=""'; 
} ?> 
<input type="checkbox" name="month" id="month" value="<?php echo $lab; ?>" <?php echo $enable; ?> <?php echo $checked; ?> /><?php echo $val; ?><br> 

請更改場鍵面值從ACF的複選框字段。同時檢查下面的輸出。

output

+0

感謝您的答案Kushal。 您的代碼顯示了所有12個複選框,但所有複選框始終顯示爲已禁用,未選中前端,儘管我在後端檢查了其中的一些複選框。 – Fedegiro

+0

如果您想啓用相同的功能,請將禁用的屬性從輸入類型複選框中刪除,然後重試。如果我的回答有幫助,請接受我的回答。 –

+0

問題是,現在我得到所有12複選框啓用。在後端(1月,4月,7月和9月)標記/檢查的複選框應該像在輸出圖像上一樣顯示爲在前端進行檢查。所有其他月份也應顯示,但禁用。 – Fedegiro