您的所有領域都設立個體,它不只是一個通過相同類型(即只是你的文件中的字段)的所有字段的數組循環的問題。
有可能爲你工作的幾種方式:
選項1. 如果所有文件中的字段名遵循相同的命名模式,並依次命名爲,你可以循環使用名稱。
例如,假設你的字段命名爲attachment_1高達attachment_5:通過現場的數組
$statement = get_field('name_of_your_statement_field');
//do whatever you need to with $statement
for ($i=1; $i<=5; $i++){
//use the number from the loop to find the file by name
$file = get_field('attachment_'.$i);
if($file){
// display file details as appropriate
}
}
選項2. 如果文件字段名稱不遵循同樣的模式,你可以循環名。
例子:
$statement = get_field('name_of_your_statement_field');
//do whatever you need to with $statement
// Create an array with the field names of all your files
// N.B. This also lets you specify the order to process them
$file_fieldnames = array('file_1', 'file2', 'another_file');
foreach ($file_fieldnames as $fieldname) {
$file = get_field($fieldname);
if($file){
// display file details as appropriate
}
}
選項3如果你想通過郵局/網頁上的所有字段循環,你可以保存域到一個數組。
這看起來似乎是最通用的方法,但它很複雜,因爲您不知道每個字段的類型以便知道如何處理和顯示它們......您首先必須弄清楚它是什麼字段類型。您可以通過名稱來完成此操作(與上面類似),或者您可以嘗試通過檢查字段內容來識別每個字段。
請注意,檢查字段內容是非常危險的,因爲還有其他類型的字段可能具有相似的特徵(例如文件不是唯一可以有url的類型),所以我不會建議這種策略,除非你是100%肯定你永遠不會改變字段組或添加另一個字段組到帖子/頁面。
實施例:
$fields = get_fields();
foreach ($fields as $fieldname => $content) {
if (is_string ($content)){
// display the string
}
else if (is_array($content) && $content['url']) {
// then you could assume its a file and display as appropriate
}
}
注意,沒有該代碼的被測試。但是,它應該讓您瞭解每個選項背後的邏輯,以便您可以決定哪些適合您。基於新的代碼提供
UPDATE:
請參見下面的根據您的jsfiddle代碼。我忽略了文件列表之外的標題,因爲它沒有任何意義 - 每個文件都可以有自己的標題。
<?php
for ($i=1; $i<=5; $i++){
//use the number from the loop to find the file by name
$file = get_field('attachment_'.$i);
if($file){
$url = $file['url'];
$title = $file['title'];
$caption = $file['caption'];
// now display this file INSIDE the loop so that each one gets displayed:
?>
<li>
<a href="<?php echo $url; ?>" title="<?php echo $title; ?>" target="_blank">
<span><?php echo $title; ?></span>
</a>
<?php if($caption): ?>
<p class="wp-caption-text"><?php echo $caption; ?></p>
<?php endif; ?>
</li>
<?php
} // end if
} // end for loop
?>
<ul>
如果你瞭解陣列,我建議你添加的文件細節到一個數組,又做了第二循環顯示文件......不過我猜你不精通基本編碼結構,因爲你不懂循環,所以我試圖保持簡單。我強烈建議你做一些關於編程基礎的教程,如果你正在嘗試編寫代碼。
這取決於你如何設置自定義字段,例如,你在轉發器中的「File1」,「File2」等字段或必須創建一個單獨的字段foreach?該組還有其他領域嗎?讓我們知道自定義字段組的結構,以便我們可以幫助:-) – FluffyKitten
@FluffyKitten我創建了組 - 「PDF」。在這個組中,我有單獨的字段「文件1」,「文件2」,「文件3」,「文件4」,「文件5」。還有一個聲明字段,其中包含如何附加文件的信息標題。 我想顯示此組中的所有字段。 – Pat
下面的答案有用嗎?還是需要更多幫助? – FluffyKitten