单选按钮未显示为已选中

Radio Buttons not showing up as checked

我目前正在尝试为 Wordpress 编写主题选项页面。其中,用户可以通过单选按钮select对齐DIV。

当前,selected 选项时看起来像这样:https://gyazo.com/e27c2fc2c2e1f751ab27d98453581c52

我想知道如何解决这个问题(让单选按钮实际显示为已选中而不是已选中='checked'居中)。它可以工作并正确输出到前端,但如果没有 checked='checked',它就不会显示为已检查。如果我使用 jquery 删除 checked='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() {
     }

谢谢!

我检查了 documentationchecked 功能,它看起来像正常回应 checked="checked" 属性。但是,因为您想将它连接到一个字符串,所以您想要 return 该属性。幸运的是,该函数中的第三个参数可以设置为 false 以使函数改为 return 属性。因此,只需将函数的用法更改为:

checked( $settings['s1_radio_buttons_settings'], $s1_button['value'], false)

注意函数末尾的 false