2012-12-16 87 views
1

從編碼ub3r的n00b兩個問題...PHP + CSS:輸出選項框架內容

首先,我使用由德文價格的選項框架主題,只是想知道我將如何輸出我的header.php文件的<head>部分的背景屬性,從主題選項頁面只有當用戶上傳了圖像或爲此選擇了顏色?

options.php

$options[] = array(
    'name' => __('Background', 'options_framework_theme'), 
    'desc' => __('Add a background.', 'options_framework_theme'), 
    'id' => 'background-one', 
    'std' => $background_defaults, 
    'type' => 'background'); 

Theme Options頁:

enter image description here

header.php

<style type="text/css"> 
<?php $background = of_get_option('background-one'); 
    echo 'body {'; 
     if ($background['color']) { 
     echo ' 
     background: ' .$background['color']. ';'; 
     } 

     if ($background['image']) { 
     echo ' 
     background: url('.$background['image']. ') '; 
      echo ''.$background['repeat']. ' '; 
      echo ''.$background['position']. ' '; 
      echo ''.$background['attachment']. ';'; 
     } 
    echo ' 
    }'; 
?> 
</style> 

其中一期工程在我的網站的前端完全正常, displayi納克的CSS爲:

body { 
    background: #8224e3; 
    background: url(images/bg03.gif) repeat top left fixed; 
} 

但是如果用戶沒有選擇一個顏色或圖片作爲背景通過主題選項頁面的源代碼將輸出:

body { 
} 

會如何如果用戶沒有選擇背景,我可以刪除上面的CSS嗎?

從我收集到的信息中,需要創建一個if聲明,但我不知道如何正確編寫它,因爲我對PHP相當陌生。


其次,我將如何能夠在框架中設置默認的背景圖像?

options.php

// Background Defaults 
    $background_defaults = array(
     'color' => '', 
     'image' => '', 
     'repeat' => 'no-repeat', 
     'position' => 'top left', 
     'attachment' => 'fixed'); 

感謝

+1

這聽起來不像一個編程問題,而是一個由Devin Price *提供的* Options Framework主題的支持請求。請聯繫軟件供應商以獲取支持選項。 – hakre

+0

只需推動'回聲「身體{'到如果一個語句中,如果你需要的背景變量被設置爲使得它只輸出。 –

回答

1

只需動幾件事情是在if語句,就像這樣:

<?php 
    $background = of_get_option('background-one'); 
    if ($background['color'] || $background['image']) { 
     echo '<style type="text/css" >'; 
     echo 'body {'; 
     if ($background['color']) { 
      echo ' 
      background: ' .$background['color']. ';'; 
     } 

     if ($background['image']) { 
      echo ' 
      background: url('.$background['image']. ') '; 
      echo ''.$background['repeat']. ' '; 
      echo ''.$background['position']. ' '; 
      echo ''.$background['attachment']. ';'; 
     } 
     echo ' 
     }'; 
     echo '</style>'; 
    } 
?> 

而且,對於你的第二個問題,只是讓以下變化:

// Set up a default image 
// NOTE: This is designed for the image to be located in your theme folder, inside an images folder 
$default = get_bloginfo("template_url") . 'images/default.jpg'; 
// Background Defaults 
$background_defaults = array(
    'color' => '', 
    'image' => $default, 
    'repeat' => 'no-repeat', 
    'position' => 'top left', 
    'attachment' => 'fixed'); 
+0

謝謝@cale_b,正是我一直在後。 任何想法在第二部分? – user1752759

+0

是的。做了編輯,包括第二部分。 –

+0

布拉沃,萬事如意cale_b。 – user1752759