在 PHP foreach 循环中添加 If/Else 语句 - WordPress 自定义字段
Adding an If/Else statement within PHP foreach loop - WordPress Custom Fields
我有这个 WordPress 自定义字段 PHP 循环:
<?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.
时遇到上述代码的语法错误
编辑:工作解决方案,谢谢 crystal
<?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 ?>
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 ?>
我有这个 WordPress 自定义字段 PHP 循环:
<?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.
时遇到上述代码的语法错误编辑:工作解决方案,谢谢 crystal
<?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 ?>
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 ?>