PHP массив отображает значения в тегах HTML, но не в селекторах CSS (Wordpress)? - PullRequest
1 голос
/ 19 декабря 2010

Я следую этому учебнику по созданию пользовательских опций Wordpress

функции в theme / functions / admin-menu.php, которая меняет цвет фона:

// Color Scheme
function color_scheme_setting() {
   $options = get_option('plugin_options');
   $items = array("Red", "Green", "Blue");

   echo "<select name='plugin_options[color_scheme]'>";
   foreach ($items as $item) {
      $selected = ( $options['color_scheme'] === $item ) ? 'selected = "selected"' : '';
      echo "<option value='$item' $selected>$item</option>";
   }
   echo "</select>";
}

header.php:

<style>
    body {
        background: <?php echo $options['color_scheme']; ?>
    }
</style>

</head>



<body <?php body_class(); ?>>

<div id="wrapper">
    <div id="header">
        <h1>
            <a href="<?php echo home_url( '/' ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a>
        </h1>

        <?php $options = get_option('plugin_options'); ?>
        <h2> <?php echo $options['banner_heading']; ?> </h2>
        <img src="<?php echo $options['logo']; ?>" alt='' />
        <p><?php echo $options['color_scheme']; ?></p>

        <div id="lang">
            <?php do_action('icl_language_selector'); ?>
            <?php _e( 'english', 'starkers' ); ?>
        </div>

        <ul id="nav">
            <?php wp_list_pages('title_li='); ?>
        </ul>

Когда я выбираю «зеленый» на панели инструментов, $options['color_scheme'] в селекторе фона не появляется.

(но он появляется в$options['color_scheme'] внутри тегов <p>

Есть ли какие-либо предложения, чтобы этот массив работал в фоновом селекторе?

(я использую Wordpress 3.03)

РЕДАКТИРОВАТЬ:

Я только что попробовал это:

    <p style="color: <?php echo $options['color_scheme']; ?>"><?php echo $options['color_scheme']; ?></p>

и тег <p> изменил свой цвет

Почему он не работает между <style> теги?

1 Ответ

2 голосов
/ 19 декабря 2010

Переменная $options инициализируется только после визуализации вашего элемента <h1>. Его значение пока недоступно, если вы хотите использовать его в блоке <style>.

Возможно, вы захотите инициализировать эту переменную раньше:

<?php $options = get_option('plugin_options'); ?>
<style>
    body {
        background: <?php echo $options['color_scheme']; ?>
    }
</style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...