PHP中的多个ID在WordPress中调用

时间:2013-11-06 17:33:47

标签: php wordpress if-statement

**我为不清楚而道歉 - 我的意思是我希望“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 '';
}
?>

或类似的东西来清理它,但我尝试过的任何东西都没有用。

有什么建议吗?

1 个答案:

答案 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_valueTRUE,则对其采取行动:

<?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 '';
}

?>