2015-07-10 62 views
0

我有一些代碼顯示一個WordPress的功能圖像。 如果尚未設置要素圖像,則應顯示默認圖像。 由於某些原因,如果未找到特徵圖像,我的代碼將爲URL參數返回空白值。WordPress的add_option查詢返回空白參數

所以輸出代碼是表示作爲...

背景圖像:網址()

代替

背景圖像:網址(http://website/image.jpg

任何幫助理解。

<?php 
add_option('default_image', 'http://website/image.jpg', '', 'yes');  
if (has_post_thumbnail($post->ID)){ 
$image = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'single-post-thumbnail'); 
} else { 
    $image = get_option('default_image'); 
} 
?> 
<div class="news-image" style="background-image: url(<?php echo $image[0]; ?>);"> 
+0

有你在你的$圖像VAR試過的var_dump()?它輸出什麼? 而且是你在數據庫中的選擇嗎? 哦,順便說一句,'get_option()'返回一個混合值,但在你的情況下,你不必做'$ image [0]','$ image'就足夠了 – DFayet

+0

圖片必須在數據庫?我不能使用常規網址或鏈接到文件夾中的圖像?如果我刪除[0]它不起作用。 – lowercase

+0

我的意思是,你的選項'default_image'應該出現在你的數據庫的'選項'表 – DFayet

回答

1

經過一番討論後,即使$ post沒有縮略圖,看起來 if (has_post_thumbnail($post->ID)) 也會返回true。

這個問題似乎已經出現在someone

在我們的情況下,這個問題解決了用下面的代碼:

<?php 
    add_option('default_image', 'http://website/image.jpg', '', 'yes'); 

    $image = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'single-post-thumbnail'); 

    if (!$image){ 
     $image[0] = get_option('default_image'); 
    } 
?> 
<div class="news-image" style="background-image: url(<?php echo $image[0]; ?>);"> 

希望它可以幫助你所有

+0

完美的解決方案。再次感謝! – lowercase

0

很可能是因爲您的圖像變量是從數據庫返回時的字符串。您可以更改

$image = get_option('default_image'); 

$image[0] = get_option('default_image'); 

,它應該工作。

+0

不幸的是仍然返回空白網址。 – lowercase