检查是否输入了单个或多个自定义数据

时间:2012-11-30 作者:souporserious

我现在正在为自定义帖子类型构建一个模板。我想知道是否有办法检查是否至少输入了一个或多个自定义值,以便相应地显示div。基本上,我想显示div,它有任何填写的内容,如果为空,则不显示它。这可能吗?

以下是我的一个示例片段:

<?php IF STAEMENT HERE ?>
   <div id="downloads">
        <ul>
        <?php if(get_post_meta($post->ID, \'sermon_video\', true)) { ?>
            <li><a href=" <?php echo $post_meta_data[\'sermon_video\'][0]; ?>">Video</a></li>
        <?php } ?>
        <?php if(get_post_meta($post->ID, \'sermon_audio\', true)) { ?>
            <li><a href=" <?php echo $post_meta_data[\'sermon_audio\'][0]; ?>">Audio</a></li>
        <?php } ?>
        <?php if(get_post_meta($post->ID, \'sermon_document\', true)) { ?>
            <li><a href=" <?php echo $post_meta_data[\'sermon_document\'][0]; ?>">PDF</a></li>
        <?php } ?>
        </ul>
   </div>
<?php ENDIF ?>

2 个回复
最合适的回答,由SO网友:Wyck 整理而成

因为您已经在使用get_post_custom 一种稍微干净但仍然脏(php)的方法。

$sermondata = get_post_custom($post->ID);

if( isset($sermondata[\'sermon_audio\']) || isset($sermondata[\'sermon_video\']) || isset($sermondata[\'sermon_document\']))
{ ?>
<div id="downloads">
// rest of your echo output
</div>
<?php } ?>
ps。只需确保值不是null, 为了安全起见,您可以将支票与array_key_exists() (但会使速度变慢)。

SO网友:s_ha_dum

首先获取您的价值观。

<?php 
$sermondata[\'sermon_video\'] = get_post_meta($post->ID, \'sermon_video\', true);
$sermondata[\'sermon_audio\'] = get_post_meta($post->ID, \'sermon_audio\', true);
$sermondata[\'sermon_document\'] = get_post_meta($post->ID, \'sermon_document\', true);

if (!empty($sermondata)) { ?>
   <div id="downloads">
      <ul>
      <?php if(isset($sermondata[\'sermon_video\'])) { ?>
        <li><a href=" <?php echo $post_meta_data[\'sermon_video\'][0]; ?>">Video</a></li>
      <?php }
      if(isset($sermondata[\'sermon_audio\'])) { ?>
        <li><a href=" <?php echo $post_meta_data[\'sermon_audio\'][0]; ?>">Audio</a></li>
      <?php } 
      if(isset($sermondata[\'sermon_document\'])) { ?>
        <li><a href=" <?php echo $post_meta_data[\'sermon_document\'][0]; ?>">PDF</a></li>
      <?php } ?>
      </ul>
   </div><php 
} ?>
如果我知道更多什么什么$sermondata 看起来有可能进一步简化代码。

结束