使用SELECT的WordPress设置--我的错误在哪里?

时间:2020-01-26 作者:t3chernobyl

我的插件中有两个选项回调,一个带有ckeckbox,另一个带有select字段。第一个工作正常,第二个工作不正常。选择字段不保存其值。我仔细检查了注册这两个设置的代码,我认为我的错误在回调中的某个地方。

有什么想法吗?

复选框(工作):

public function myplugin_post_menu_cb() {
    echo \'<input type="checkbox" name="\' . $this->option_name . \'_post_menu\' . \'" value="1" "\' . checked(1, get_option(\'myplugin_post_menu\'), false) . \'" />\';
}
选择(不工作):

public function myplugin_admin_bar_cb() {
    echo \'<select name="\' . $this->option_name . \'_admin_bar\' . \'">\';
        echo \'<option value="1" "\' . selected( get_option(\'myplugin_admin_bar\'), 1 ) . \'">1</option>\';
        echo \'<option value="2" "\' . selected( get_option(\'myplugin_admin_bar\'), 2 ) . \'">2</option>\';
    echo \'</select>\';
}
谢谢你的帮助。

2 个回复
SO网友:Jacob Peattie

问题是你打电话给selected() 您尚未将第三个参数设置为false. 对于两者selected()checked() 如果不这样做,它将立即回显该属性,如果在串联字符串中使用该属性,则无法正常工作。

So更改:

selected( get_option(\'myplugin_admin_bar\'), 1 )
收件人:

selected( get_option(\'myplugin_admin_bar\'), 1, false )

SO网友:t3chernobyl

问题解决了!如果有人感兴趣,以下是完整的代码:

public function myplugin_admin_bar_cb() {
    echo \'<select name="\' . $this->option_name . \'_admin_bar\' . \'">\';
        echo \'<option value="1" \' . selected(1, get_option(\'myplugin_admin_bar\'), false ) . \'>On</option>\';
        echo \'<option value="2" \' . selected(2, get_option(\'myplugin_admin_bar\'), false ) . \'>Off</option>\';
    echo \'</select>\';       
}

相关推荐

我想根据我从SELECT下拉菜单中获取的ID来获取定制POST数据

当我更改select中的值时,我想通过id在同一页上显示特定的post数据。select的代码已经完成,有点像下面的代码,之后我被卡住了,我可以得到关于如何显示数据的任何帮助。<select class=\"form-control\" id=\"selectid\" name=\"selectid\" > <?php global $query_string; // query_posts (\'posts_per_page=20\');&#x