1

コーディング ub3r n00b からの 2 つの質問...

まず、Devin Price の Options Framework Themeを使用しています。ユーザーが画像をアップロードしたか、色を選択した場合にのみ、テーマ オプションページから、ファイルの<head>セクションにある背景プロパティを出力する方法を知りたいだけです。これ?header.php

私の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ページ:

ここに画像の説明を入力

私の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>

これは私のサイトのフロントエンドで完全に機能し、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' );

ありがとう

4

1 に答える 1

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

そして、2 番目の質問については、次の変更を加えるだけです。

// 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' );
于 2012-12-16T23:10:18.883 に答える