我目前正在尝试为Wordpress编写主题选项页面。在其中,用户可以通过单选按钮选择DIV的对齐方式。
目前,当选择了一个选项时,它看起来像这样:https://gyazo.com/e27c2fc2c2e1f751ab27d98453581c52
我想知道我是如何解决的(因为单选按钮实际显示为已选中而不是已选中='已检查'中心)。它工作正常,它输出到前端但它没有被检查显示为没有选中='已检查'。如果我使用jquery删除 checked ='选中' ,它会一起删除单选按钮。
register_setting('slider_setting','slider_section1_direction');
add_settings_section( 'slider_section', '', 'slider_settings_callback', 'register_slider_settings' );
add_settings_field( 'slider_section1_direction', '', 'slider_section1_direction_callback', 'register_slider_settings', 'slider_section' );
function slider_section1_radio_buttons_callback() {
$s1_radio_buttons_settings = array(
'left' => array(
'value' => 'left',
'label' => 'Left'
),
'center' => array(
'value' => 'center',
'label' => 'Center'
),
'right' => array(
'value' => 'right',
'label' => 'Right'
),
);
return apply_filters( 'slider_section1_radio_buttons_callback', $s1_radio_buttons_settings );
}
function slider_section1_direction_callback() {
$settings = get_option('slider_section1_direction');
echo '<div class="setting">';
echo '<div class="setting-header half-width-header">';
esc_attr_e('Slider Text Alignment');
echo '</div>';
echo '<div class="setting-body" style="margin-top: 5px">';
// RADIO BUTTONS
foreach ( slider_section1_radio_buttons_callback() as $s1_button ) {
echo '<label class="description" style="margin-right: 40px">';
echo "<input type='radio'" . checked( $settings['s1_radio_buttons_settings'], $s1_button['value'] ) . " name='slider_section1_direction[s1_radio_buttons_settings]' value='" . esc_attr( $s1_button['value'] ) . "'/>";
echo $s1_button['label'];
echo '</label>';
}
echo '</div>';
echo '<div class="clear"></div>';
echo '</div>';
}
function slider_settings_callback() {
}
谢谢!
答案 0 :(得分:1)
我检查了checked
checked="checked"
函数,看起来它通常会回显false
属性。但是,因为您希望将其连接到字符串,所以您希望返回该属性。幸运的是,该函数中的第三个参数可以设置为checked( $settings['s1_radio_buttons_settings'], $s1_button['value'], false)
,以使函数返回该属性。所以只需将函数的用法更改为:
false
注意函数末尾的upload_to='items'
。