如何在WordPress的选项菜单中显示单选按钮的值

时间:2019-02-22 作者:Anduin Mooney

这件事让我有点困惑。我对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\'); ?>
我错过了什么?任何帮助都将不胜感激

1 个回复
最合适的回答,由SO网友:Qaisar Feroz 整理而成

您的表单正在使用发送数据POST 方法,所以您应该在中收到单选按钮的选定值$_POST[\'colorSelect\'].

要简单地显示它,您可以使用:

if(isset($_POST[\'colorSelect\']))
    echo $_POST[\'colorSelect\']; 
else echo "Nothing selected";
要将其保存到选项表,请在函数开头使用以下代码colorSelector():

if(isset($_POST[\'colorSelect\']))
    update_option(\'colorSelect\', $_POST[\'colorSelect\']);
因此,您可以在以后使用get_option(\'colorSelect\');

我希望这会有所帮助。

It is advised 获取您应该遵循的最佳实践WordPress Setting API, 如果您有更多选项要保存。