**我为不清楚而道歉 - 我的意思是我希望“Summit赞助商”能够显示一次,无论使用多少ID。只是在没有使用ID的情况下隐藏它。谢谢**
我想知道是否有人知道在IF语句中使用多个自定义字段的简洁方法。
目前我将其间隔开,因此每个自定义字段“SponsorHeading#”都有自己的if / else语句:
<?php
if(get_post_meta($post_id, 'SponsorHeading1', true)) {
echo '<h2>Summit Sponsors </h2>';
}
else {
echo '';
}
if(get_post_meta($post_id, 'SponsorHeading2', true)) {
echo '<h2>Summit Sponsors </h2>';
}
else {
echo '';
}
?>
依此类推3个自定义字段。我希望有更清洁的东西:
<?php
if(get_post_meta($post_id, 'SponsorHeading1', true)) || if(get_post_meta($post_id, 'SponsorHeading2', true)) || if(get_post_meta($post_id, 'SponsorHeading3', true)) {
echo '<h2>Summit Sponsors </h2>';
}
else {
echo '';
}
?>
或类似的东西来清理它,但我尝试过的任何东西都没有用。
有什么建议吗?
答案 0 :(得分:3)
在WordPress的逻辑本身中是否有一种更有效的方法来管理它是不是100%肯定,但我能想到的最简单的解决方案是使用你给出的例子将所有的ID放入一个数组和放大器中。有逻辑循环遍历它们:
<?php
$fields = array('SponsorHeading1', 'SponsorHeading2', 'SponsorHeading3');
foreach($fields as $field_value) {
if(get_post_meta($post_id, $field_value, true)) {
echo '<h2>Summit Sponsors </h2>';
}
else {
echo '';
}
}
?>
编辑:解决用户对问题的修改问题。那怎么样?我们遍历这些字段,如果$has_value
返回至少一个字段,则TRUE
的值会更改为get_post_meta()
。如果$has_value
为TRUE
,则对其采取行动:
<?php
$fields = array('SponsorHeading1', 'SponsorHeading2', 'SponsorHeading3');
$has_value = FALSE;
foreach($fields as $field_value) {
if(get_post_meta($post_id, $field_value, true)) {
$has_value = TRUE;
}
}
if ($has_value) {
echo '<h2>Summit Sponsors </h2>';
}
else {
echo '';
}
?>