所以我正在尝试使用 Wordpress post meta 来计算条件。如果用户填充了帖子元,我一直在使用 get_post_meta()
来显示内容,但我需要改进规则并向其添加一些额外的条件。
基本上,我需要做的就是将此条件扩展到多个键。如果用户同时输入 post_meta_1
和 post_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; ?>
最佳答案
您需要为每个想要为其赋值的 meta_key
单独调用 get_post_meta()
。您可以在单个meta_key
下存储多个值,这就是第三个参数的用途 - true
返回一个单个值,false
该 meta_key
的值数组。如果数据库中没有值,get_post_meta()
的结果将为 === false
,或者您可以只检查 empty()
> 也是如此。
$capacity = get_post_meta( $post->ID, 'post_meta_1', true );
$approved_environment = get_post_meta( $post->ID, 'post_meta_2', true );
if ( $capacity && $approved_environment ){
// post_meta_1 AND post_meta_2 are set
}
if ( false !== $capacity && false !== $approved_environment ){
// post_meta_1 AND post_meta_2 are not set
}
if ( false !== $capacity || false !== $approved_environment ){
// post_meta_1 AND/OR post_meta_2 are not set
}
if ( empty( $capacity ) && empty( $approved_environment ) ){
// post_meta_1 AND post_meta_2 are not set or are equal to "", null, or 0
}
if ( empty( $capacity ) || empty( $approved_environment ) ){
// post_meta_1 AND/OR post_meta_2 are not set or are equal to "", null, or 0
}
关于php - Wordpress get_post_meta - 如何检查多个 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23801675/