Как отобразить значение из переключателя в меню параметров в WordPress - PullRequest
0 голосов
/ 23 февраля 2019

Я немного озадачен этим.Я не очень опытен, когда дело доходит до PHP, но я понял, как отобразить значение, введенное из текстового поля.Я сейчас пытаюсь сделать то же самое с переключателем.

Моя конечная цель - позволить администратору сайта изменить цвет темы, выбрав один из нескольких вариантов.Я хочу иметь возможность изменять CSS в зависимости от того, какая опция выбрана

На данный момент я в основном просто пытаюсь отобразить любой вид значения на сайте, например, отобразить <p>Golden Theme</p> в заголовкеили что-то, просто чтобы заставить его работать.

Ниже у меня установлены значения 0, 1, 2, 3 в надежде получить это для отображения на моем сайте в зависимости от того, какая радиокнопка выбрана в опцияхmenu.

Вот мой текущий код

function colorSelector(){
    ?>
    <h3 class="title">Set Theme Color</h3>
    <form method="post" action="options.php">
        <?php settings_fields('colorSelector-settings-group'); ?>
        <div>
            <input type="radio" id="goldTheme" name="colorSelect"  value="0" <?php checked( '0', get_option( 'colorSelect' ) ); ?> checked>
            <label for="goldTheme">Golden (Default)</label>

            <input type="radio" id="monochromeTheme" name="colorSelect"   value="1" <?php checked( '1', get_option( 'colorSelect' ) ); ?>>
            <label for="monochromeTheme">Monochrome</label>

            <input type="radio" id="greenTheme" name="colorSelect"  value="2" <?php checked( '2', get_option( 'colorSelect' ) ); ?>>
            <label for="greenTheme">Green</label>

            <input type="radio" id="blueTheme" name="colorSelect"  value="3" <?php checked( '3', get_option( 'colorSelect' ) ); ?>>
            <label for="blueTheme">Blue</label>

        </div>      
        <div>
            <?php submit_button(); ?>
        </div>
    </form>
    <?php
}

function add_colorSelector_options_page(){
    add_menu_page('Color Selector', 'Color Selector', 'manage_options', "manage-colorSelector-options", "colorSelector");
    add_action('admin_init', 'colorSelector_custom_settings');
}

function colorSelector_custom_settings(){
    register_setting('colorSelector-settings-group', 'colorSelect');

}

add_action('admin_menu', 'add_colorSelector_options_page');

И этот код я пытаюсь использовать для отображения выбранного значения в HTML

<?php echo get_option('colorSelect'); ?>

Что такоеЯ скучаю?Любая помощь будет оценена

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

В показанном вами коде функция add_colorSelector_options_page() не вызывается.Если вы проверите документацию , вы увидите, что add_menu_page должен вызываться действием admin_menu.

Правильный код: помните, что admin_init не должно быть внутриadmin_menu обратный вызов:

add_action('admin_init', 'colorSelector_custom_settings');

add_action('admin_menu', 'add_colorSelector_options_page');

function add_colorSelector_options_page() {
    add_menu_page('Color Selector', 'Color Selector', 'manage_options', "manage-colorSelector-options", "colorSelector");
}

function colorSelector_custom_settings(){
    register_setting('colorSelector-settings-group', 'colorSelect');
}

function colorSelector(){ /* ETC */ }
0 голосов
/ 23 февраля 2019

Вы можете использовать $ _POST

<?php
if (isset($_POST['submit'])) {
   if(isset($_POST['colorSelect']))
     {
        echo "You have selected :".$_POST['colorSelect'];  //  Displaying Selected Value
     }
  }
 ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...