【问题标题】:Checkbox `checked()` function echo's checked='checked'复选框 `checked()` 函数 echo's checked='checked'
【发布时间】:2018-03-22 17:36:04
【问题描述】:

我正在编写一个 WordPress 插件并在表单中有一个复选框。

如果复选框被选中,它会将值保存到数据库并在表单中显示为选中状态。但是,如果选中该复选框,则会在表单中输出checked='checked'

所以复选框的工作方式就像它需要工作一样,但我不明白为什么它将checked='checked' 输出到表单

public function display() {

    $html = '';
    // Add an nonce field so we can check for it later.
    wp_nonce_field( basename( __FILE__ ), 'nonce_check_value' );
    $html .= '<label for="CMBUserBoxName">Name metabox: </label>';
    $html .= '<input type="text" name="CMBUserBoxName" value="' . get_post_meta( get_the_ID(), 'CMBUserBoxName', true ). '">';
    $html .= '<h1>What do you need?</h1>';
    $html .= '<label for="CMBUserCheckbox">Checkbox: </label>';
    $checkedByUser = get_post_meta( get_the_ID(), 'CMBUserCheckbox', true );
    $html .= '<input type="checkbox" name="CMBUserCheckbox" value="1" '.checked( $checkedByUser, 1 ).' />';

    echo $html;
}

屏幕输出如下

【问题讨论】:

  • 因为 wordpress 很愚蠢,那些排序函数实际上包含一个回显,所以你回显了 checked 函数返回两次 - 可以通过使用 isset 或其他一些 std php 函数来修复:)

标签: php html wordpress checkbox


【解决方案1】:

checked() 函数 echos 默认情况下。在最后一个参数中使用false 来返回字符串而不是回显。

$html .= '<input type="checkbox" name="CMBUserCheckbox" value="1" '.checked( $checkedByUser, 1, false).' />';

【讨论】:

  • 老兄......完美
【解决方案2】:

使用 wordpress Checked() 函数可以做到这一点

<input checked class="classname" value="checkvalue" id="" type="radio" name="" <?php echo checked( get_option('get_check_box_value'), 'checkvalue') ?>>

【讨论】:

  • 该代码看起来与 OP 使用的完全不同
猜你喜欢
  • 1970-01-01
  • 2014-05-06
  • 2011-02-09
  • 2017-09-24
  • 2020-09-29
  • 2013-08-10
  • 1970-01-01
  • 2011-06-20
相关资源
最近更新 更多