所以我的插件已经完成了90%,但它只是对输入进行清理/转义。如何在保存设置之前有条件地验证它?
快速示例:
<form method="post" action="options.php">
<?php
settings_fields( 'settings_option_group' );
do_settings_sections( 'settings-admin' );
submit_button();
?>
</form>
这是设置页面表单,它处理与显示/保存设置相关的一切。像这样的功能:
if ( isset( $input['stwc_ft_oosn_notice_1'] ) ) {
$sanitary_values['stwc_ft_oosn_notice_1'] = sanitize_text_field( $input['stwc_ft_oosn_notice_1'] );
}
清除不需要的用户输入,但我如何检查例如文本框是否有数字?或者,如何有条件地检查文本框是否为空?例如
如果选中xxx复选框,则yyy文本框必须有一个值
我在整个codex中找不到这种情况,按照关于编写插件的教程,它确实提到了
Data Validation
以及实现它的方法。但在实践中,它没有在设置页面中指示如何做到这一点,例如,当由于逻辑原因无法保存设置时,或者添加红色边框或错误/空字段时,我会显示错误消息。等