我想知道如何使用register_setting()
回调函数。
下面是我想使用的代码的示例部分:
register_setting( \'wpPart_options\', \'wpPart_options\', array( &$this, \'wpPartValidate_settings\' ) );
$this
是一个对象数组。
以下是我的演讲内容wpPartValidate_settings();
作用
public function wpPartValidate_settings( $input ) {
$options = get_option( \'wpPart_options\' );
if ( check_admin_referer( \'wpPart_nonce_field\', \'wpPart_nonce_verify_adm\' ) ) {
return $input;
}
}
自
$input
是一个数组,如何对验证函数的每个输入执行正确的验证?
例如,我想执行strlen()
检查文本字段:
if ( strlen( $input ) != 20 )
add_settings_error( \'wpPart_options\', \'textField\', __( \'TextField incomplete.\', \'wpPart\' ) , \'error\' );
最合适的回答,由SO网友:montrealist 整理而成
就我个人而言,我也会这样做,因为这似乎是您可以检查用户输入并验证它的唯一点。
此外,大量借用中的代码示例this excellent article:
function wpPartValidate_settings( $input ) {
if ( check_admin_referer( \'wpPart_nonce_field\', \'wpPart_nonce_verify_adm\' ) ) {
// Create our array for storing the validated options
$output = array();
foreach( $input as $key => $value ) {
// Check to see if the current option has a value. If so, process it.
if( isset( $input[$key] ) ) {
// Strip all HTML and PHP tags and properly handle quoted strings
$output[$key] = strip_tags( stripslashes( $input[ $key ] ) );
} // end if
} // end foreach
} // end if
// Return the array processing any additional functions filtered by this action
return apply_filters( \'wpPartValidate_settings\', $output, $input );
}
我最喜欢的部分是
apply_filters
最后打电话。这就是最佳实践!