2015-04-15 39 views
0

我有這個WordPress的自定義字段PHP循環:PHP foreach循環中添加一個if/else語句 - WordPress的自定義字段

<?php 
    $fields = CFS()->get('image-field'); 
    foreach ($fields as $field) { 
?> 

    <a href="<?php echo $field['image-upload']; ?>">Link to image</a> 
    <a href="<?php echo $field['image-url']; ?>">Link to image</a> 
    <?php echo $field['image-description']; ?> 

<?php } ?> 

而且要添加一個if/else語句,像(這不起作用):

<?php 
    $fields = CFS()->get('image-field'); 
    foreach ($fields as $field) { 
?> 

    if ($field['image-upload']) { 
     <a href="<?php echo $field['image-upload']; ?>">Link to image</a> 
    } 
    else { 
     <a href="<?php echo $field['image-url']; ?>">Link to image</a> 
    } 
    <?php echo $field['image-description']; ?> 

<?php } ?> 

我發現,這個工程

<?php 
    $fields = CFS()->get('image-field'); 
    foreach ($fields as $field) { 
     if ($field['image-upload']) { 
     ?> 
      <a href="<?php echo $field['image-upload']; ?>">Go To Store!</a> 
     <?php 
     } else { 
      echo $field['image-url']; 
     } 
     echo $field['image-description']; 
     } 
?> 

但我嘗試添加運行時,與上面的代碼的語法錯誤HTML。

編輯:工作的解決方案,由於晶

<?php 
    $fields = CFS()->get('image-field'); 
    ?> 

    <? foreach ($fields as $field) : ?> 
    <ul> 
     <? if ($field['image-upload']) : ?> 
      <li><a href="<?= $field['image-upload'] ?>">Link to image</a> 
     <? else : ?> 
      <li><a href="<?= $field['image-url'] ?>">Link to image</a> 
     <? endif ?> 
      <li><?= $field['image-description'] ?> 
    </ul> 
    <? endforeach ?> 

回答

1

HTML應該echo<?php ... ?>之外,像這樣來寫:

<?php 
$fields = CFS()->get('image-field'); 
foreach ($fields as $field) { 

    if ($field['image-upload']) { ?> 
     <a href="<?php echo $field['image-upload']; ?>">Link to image</a> 
    <?php } else { ?> 
     <a href="<?php echo $field['image-url']; ?>">Link to image</a> 
    <?php 
    } 
    echo $field['image-description']; 
} 
?> 

如果使用short_open_tag的值爲:

<?php 
$fields = CFS()->get('image-field'); 
?> 

<? foreach ($fields as $field) : ?> 
    <? if ($field['image-upload']) : ?> 
     <a href="<?= $field['image-upload'] ?>">Link to image</a> 
    <? else : ?> 
     <a href="<?= $field['image-url'] ?>">Link to image</a> 
    <? endif ?> 
    <?= $field['image-description'] ?> 
<? endforeach ?> 
+0

謝謝! short_open_tag版本適合我的用例。我忘了提及我打算將返回的值放在無序列表中。那是我遇到過的語法問題。 – GSimon

相關問題