单选按钮未显示为已选中

时间:2016-08-23 22:14:32

标签: php html wordpress radio-button wordpress-theming

我目前正在尝试为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() {
     }

谢谢!

1 个答案:

答案 0 :(得分:1)

我检查了checked checked="checked"函数,看起来它通常会回显false属性。但是,因为您希望将其连接到字符串,所以您希望返回该属性。幸运的是,该函数中的第三个参数可以设置为checked( $settings['s1_radio_buttons_settings'], $s1_button['value'], false) ,以使函数返回该属性。所以只需将函数的用法更改为:

false

注意函数末尾的upload_to='items'