2012-07-31 69 views
0

我有以下代码:如果帖子Meta不存在,我该怎么办?

<?php $buycheck = get_post_meta($post->ID, 'buy-link', true); ?> 

      <?php if ($buycheck) : ?> 
       <div class="section-title sidebar span5"> 
        <h5>Get This Release</h5> 
       </div> 

      <?php else : ?> 

       <div class="section-title sidebar span5"> 
        <h5>More Releases</h5> 
       </div> 

      <?php endif; ?> 

在我的代码后来我想能够说,如果购买链接不存在 - 即没有在该领域没有任何数据 - 然后做一些事情,做别的有些不同。

不知道该怎么做!帮助赞赏!

(顺便说一句,我第一次张贴了这个问题WordPress的堆栈交换可以被选为关闭那里,因为它显然涉及PHP布尔逻辑比WordPress的更多 - https://wordpress.stackexchange.com/questions/60387/how-do-i-do-if-post-meta-does-not-exist#comment78412_60387

回答

1
<?php if($buycheck ==''){ /*stuff*/ } ?> 

这将使$ buycheck,如果是空的==等于''什么。

1

您可以设置一个全局变量,你可以后来检查,看是否存在buylink:

<?php 

$buycheck = get_post_meta($post->ID, 'buy-link', true); 
$GLOBALS['buy_link_exists'] = !empty($buycheck); 

?> 

<?php if ($buycheck) : ?> 
<div class="section-title sidebar span5"> 
    <h5>Get This Release</h5> 
</div> 

<?php else : ?> 

<div class="section-title sidebar span5"> 
    <h5>More Releases</h5> 
</div> 

<?php endif; ?> 

再后来就在你的代码:

<?php if ($GLOBALS['buy_link_exists'])): ?> 
    it exists, do one thing 
<?php else: ?> 
    it does not exist, do something else 
<?php endif; ?> 

如果您需要实际值,您可以设置一个包含get_post_meta返回值的全局值,以便您可以使用实际值。

+0

谢谢@ drew010,这是一个很好的答案,非常有帮助。没有被标记为已解决,因为它并不完全符合我所寻找的内容,但我非常感谢它,因为它很清楚并且有用。 – 2012-07-31 22:48:50

+0

无论如何感谢您的投票,我没有注意到你一开始传递'$ single'参数,所以我认为它返回一个数组。你所看到的代码很好,所以我认为你的意思是你希望以后使用相同的文章meta,并且需要引用它。无论如何,与编码祝你好运。 – drew010 2012-07-31 22:54:11

相关问题