如何在Wordpress的选项菜单中通过单选按钮显示值

时间:2019-02-22 21:22:55

标签: php html wordpress

我对此有些困惑。我对PHP并不是很有经验,但是我已经弄清楚了如何显示从文本框中输入的值。我现在正尝试通过单选按钮执行相同的操作。

我的最终目标是允许站点管理员通过从几个选项中进行选择来更改主题的颜色。我希望能够根据选择的选项来更改CSS

截至目前,我基本上只是试图在网站上显示任何类型的值,例如在标题中显示<p>Golden Theme</p>还是为了使其正常工作。

下面,我将值设置为0、1、2、3,以希望将其显示在我的网站上,具体取决于在选项菜单中选择了哪个单选按钮。

这里是我当前的代码

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 :(得分:0)

您可以使用$ _POST

<?php
if (isset($_POST['submit'])) {
   if(isset($_POST['colorSelect']))
     {
        echo "You have selected :".$_POST['colorSelect'];  //  Displaying Selected Value
     }
  }
 ?>

答案 1 :(得分:0)

在您显示的代码中,未调用函数add_colorSelector_options_page()。如果您check the documentation,您会看到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 */ }