Wordpress get_post_meta - 如何检查多个密钥?

时间:2014-05-22 08:33:04

标签: php wordpress

所以我试图用Wordpress post meta来解决条件问题。如果用户填充了post meta,我一直在使用get_post_meta()来显示内容,但我需要改进规则并为其添加一些额外的条件。

基本上,我需要做的是将这个条件扩展到多个键。如果用户输入post_meta_1post_meta_2,则会运行某些代码,否则会运行其他代码。

这是我目前正在使用的代码:

if (!((get_post_meta($post->ID, 'post_meta_1', TRUE))=='')) {
    // code here
} elseif {
    // code here as well
}?>

这是我的PHP逻辑走了多远:

if (!((get_post_meta($post->ID, array('post_meta_1', 'post_meta_2'), false))=='')) {
    // code here
} elseif {
    // code here as well
}?>

修改

不知怎的,我设法通过使用这种方法让它工作:

<?php

$post_meta_1 = get_post_meta($post->ID, 'post_meta_1', TRUE);
$post_meta_2 = get_post_meta($post->ID, 'post_meta_2', TRUE);

if ($post_meta_1 && $post_meta_2) : ?>

CODE HERE

<?php endif; ?>

1 个答案:

答案 0 :(得分:3)

您需要为您希望获得值的每个get_post_meta()单独致电meta_key。您 可以 在单个meta_key下存储多个值,这是第三个参数的用途 - true返回单个值{{1 } false的值数组。如果数据库中没有值,则meta_key的结果为get_post_meta(),或者您也可以检查=== false

empty()