WordPress函数 checked() selected() disabled() 与表单操作相关

今天分享几个与表单操作相关的Wordpress函数:checked()、selected()、disabled()。

checked()

介绍

使用在表单的多选checkbox和单选radio按钮中。用于比较两个给定的值(比如,已经保存到数据库的值和表单中的值),如果两个值相同,或者只有 $checked 参数且为真时,添加 checked 属性到当前的多选和单选按钮中。

用法

<?php checked( $checked, $current, $echo ); ?>

参数注解:

$checked	必需,默认为false,用于比较的值,如 已经在数据库中保存的。
$current	可选,默认为true,另外的值(如果不为 true),当前选项的值。
$echo		可选,默认为true,返回结果是输出还是返回字符串。

返回值:(string) HTML 属性 (checked='checked') 或者空的字符串。

实例

对比使用if()函数和checked()函数的不同写法:

//if()写法
<input type='checkbox' name='enable' value='1' <?php if( 1 == $enable_option ) echo 'checked="checked"'; ?> /> 是否开启使用

//checked()写法
<input type="checkbox" name="enable" value="1" <?php checked( $enable_option, 1 ); ?> /> 是否开启使用

//checked()写法变种,先判断是否存在再比较
<input type="checkbox" name="enable" value="1" <?php checked( !$arr || $arr["enable_option"]==1 ); ?> /> 是否开启使用

selected()

介绍

使用在表单的下拉菜单中,用于比较两个给定的值,如果值相同,给当前的选项添加 selected 属性。

用法

<?php selected( $selected, $current, $echo ); ?>

参数注解:

$selected	必需,默认为false,用于比较的值,如 已经在数据库中保存的。
$current	可选,默认为true,另外的值(如果不为 true),当前选项的值。
$echo		可选,默认为true,返回结果是输出还是返回字符串。

返回值:(string) HTML 属性 (selected ='selected') 或者空的字符串。

实例

对比使用if()函数和checked()函数的不同写法:

//if() 写法
<select name="options[foo]">
    <option value="1" <?php if( $options['num'] == 1 ) echo 'selected="selected"'; ?>>1</option>
    <option value="2" <?php if( $options['num'] == 2 ) echo 'selected="selected"'; ?>>2</option>
    <option value="3" <?php if( $options['num'] == 3 ) echo 'selected="selected"'; ?>>3</option>
</select>

//selected() 写法
<select name="options[foo]">
    <option value="1" <?php selected( $options['num'], 1 ); ?> >1</option>
    <option value="2" <?php selected( $options['num'], 2 ); ?> >2</option>
    <option value="3" <?php selected( $options['num'], 3 ); ?> >3</option>
</select>

disabled()

介绍

用在表单中的输入框中。用于比较两个给定的值,如果两个值相同,添加 disabled 属性到输入框中。

用法

<?php disabled( $disabled, $current, $echo ); ?>

参数注解:

$disabled	必需,默认为false,用于比较的值,如 已经在数据库中保存的。
$current	可选,默认为true,另外的值(如果不为 true),当前选项的值。
$echo		可选,默认为true,返回结果是输出还是返回字符串。

返回值:(string) HTML 属性 (disabled ='disabled') 或者空的字符串。

源文件

以上三个函数源码所在文件:wp-includes/general-template.php