2011-12-11 122 views
0

我正在使用下面的代碼來啓用一個if/else語句。get_post_meta總是返回一個數組

<?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); 
}?> 

我的問題是,get_post_meta始終返回格式的數組即使$單設置爲true

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

讚賞任何幫助。

+1

這段代碼應該做什麼?比較像'http:// www.crimeandjustice.org.uk'這樣的字符串與'.pdf','.doc','.xls'?看起來好像不會起作用... – deceze

+0

查找以文件名結尾的鏈接,如果是,則顯示不同的圖像。 – toomanyairmiles

回答

5

它始終返回一個數組,因爲您正在執行get_post_meta函數array語言結構。根據Wordpress Codexget_post_meta而不是返回一個數組,如果第三個參數設置爲true。因此,互換:

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

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

只是出於好奇,在if語句中的邏輯只會陣列上運行,如果去掉array構建你的if語句將失敗。

+0

我仍然使用「$ filename = get_post_meta($ post-> ID,'mjwlink-url',TRUE);」方法。我在一個循環內使用它...這是問題嗎? –

相關問題