【发布时间】: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