get_post_meta总是返回一个数组

时间:2011-12-11 03:14:47

标签: php wordpress

我正在使用以下代码启用if / else语句。

<?php
$types = array('.pdf', '.doc', '.xls');
$filename = array(get_post_meta($post->ID, 'mjwlink-url', TRUE));
if(0 < count(array_intersect(array_map('strtolower', $filename), $types))) {
   echo 'One';
} else {
   echo var_dump($filename);
}?>

我遇到的问题是,即使$ single设置为true,get_post_meta也会以格式返回一个数组

array(1) { [0]=> string(34) "http://www.crimeandjustice.org.uk/" }

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:5)

它始终返回一个数组,因为您正在 get_post_meta语言构造中执行array函数。根据{{​​3}} get_post_meta,如果第三个参数设置为true,则 not 将返回一个数组。因此,交换:

$filename = array(get_post_meta($post->ID, 'mjwlink-url', TRUE));

$filename = get_post_meta($post->ID, 'mjwlink-url', TRUE);

出于好奇,if语句中的逻辑只适用于数组,如果删除array构造,if语句将失败。