Gravity Forms下拉列表排序问题:如何让1-60分钟选项按顺序显示?
解决Gravity Forms时间下拉列表数字排序问题
问题原因
Gravity Forms默认会把下拉选项按字符串排序,所以会出现1、12、19这类带"1"的选项排在一起,而不是按数字1-60的顺序排列。
解决方法(代码实现,适合新手)
你可以通过WordPress的钩子函数,强制让指定字段的选项按数字顺序排序,步骤如下:
- 登录你的WordPress后台,进入「外观」→「主题文件编辑器」
- 在右侧找到并点击「主题函数 (functions.php)」
- 将下面的代码粘贴到文件末尾(注意:操作前最好备份一下functions.php文件,避免出错)
add_filter( 'gform_pre_render', 'sort_minute_dropdown_numerically' ); function sort_minute_dropdown_numerically( $form ) { // 替换成你的表单ID(编辑表单时地址栏里的?id=X,X就是表单ID) $target_form_id = 1; // 替换成你的下拉字段ID(编辑字段时,右上角字段设置里能看到ID) $target_field_id = 2; if ( $form['id'] != $target_form_id ) { return $form; } foreach ( $form['fields'] as &$field ) { if ( $field['id'] == $target_field_id && $field['type'] == 'select' ) { // 按选项的数字值排序 usort( $field['choices'], function( $a, $b ) { return (int)$a['value'] - (int)$b['value']; } ); } } return $form; }
- 替换代码里的
$target_form_id和$target_field_id为你自己表单和字段的ID,然后点击「更新文件」
怎么找表单ID和字段ID?
- 表单ID:打开要编辑的表单,浏览器地址栏里的URL会类似
.../wp-admin/admin.php?page=gf_edit_forms&id=3,这里的3就是表单ID - 字段ID:编辑下拉字段时,页面右上角的「字段设置」区域里,会显示「字段ID: X」,X就是字段ID
替代方案(无代码)
如果你不想写代码,可以尝试安装Gravity Forms官方的扩展插件「Gravity Forms Field Editor」,它支持可视化调整选项排序,但这个插件是付费的。
内容的提问来源于stack exchange,提问作者Colleen Gerber
相关产品推荐
相关产品推荐

