_wp_die_process_input

函数
_wp_die_process_input ( $message, $title = '', $args = array() )
Access
Private
参数
  • (string|WP_Error) $message Error message or WP_Error object.
    Required:
  • (string) $title Optional. Error title. Default empty.
    Required:
    Default: (empty)
  • (string|array) $args Optional. Arguments to control behavior. Default empty array.
    Required:
    Default: array()
返回值
  • (array) { Processed arguments. @type string $0 Error message. @type string $1 Error title. @type array $2 Arguments to control behavior. }
定义位置
相关方法
wp_widget_rss_outputwp_load_press_thiswp_widget_rss_process_wp_admin_bar_initwp_edit_posts_query
引入
5.1.0
弃用
-

_wp_die_process_input: 这个函数用于在WordPress的用户死亡时处理输入: 当WordPress中发生错误时,用户会看到一个错误信息: 这个函数用来处理用户在错误发生前可能已经输入的任何信息。

处理传递给wp_die()的参数,使其处理程序一致。

function _wp_die_process_input( $message, $title = '', $args = array() ) {
	$defaults = array(
		'response'          => 0,
		'code'              => '',
		'exit'              => true,
		'back_link'         => false,
		'link_url'          => '',
		'link_text'         => '',
		'text_direction'    => '',
		'charset'           => 'utf-8',
		'additional_errors' => array(),
	);

	$args = wp_parse_args( $args, $defaults );

	if ( function_exists( 'is_wp_error' ) && is_wp_error( $message ) ) {
		if ( ! empty( $message->errors ) ) {
			$errors = array();
			foreach ( (array) $message->errors as $error_code => $error_messages ) {
				foreach ( (array) $error_messages as $error_message ) {
					$errors[] = array(
						'code'    => $error_code,
						'message' => $error_message,
						'data'    => $message->get_error_data( $error_code ),
					);
				}
			}

			$message = $errors[0]['message'];
			if ( empty( $args['code'] ) ) {
				$args['code'] = $errors[0]['code'];
			}
			if ( empty( $args['response'] ) && is_array( $errors[0]['data'] ) && ! empty( $errors[0]['data']['status'] ) ) {
				$args['response'] = $errors[0]['data']['status'];
			}
			if ( empty( $title ) && is_array( $errors[0]['data'] ) && ! empty( $errors[0]['data']['title'] ) ) {
				$title = $errors[0]['data']['title'];
			}

			unset( $errors[0] );
			$args['additional_errors'] = array_values( $errors );
		} else {
			$message = '';
		}
	}

	$have_gettext = function_exists( '__' );

	// The $title and these specific $args must always have a non-empty value.
	if ( empty( $args['code'] ) ) {
		$args['code'] = 'wp_die';
	}
	if ( empty( $args['response'] ) ) {
		$args['response'] = 500;
	}
	if ( empty( $title ) ) {
		$title = $have_gettext ? __( 'WordPress › Error' ) : 'WordPress › Error';
	}
	if ( empty( $args['text_direction'] ) || ! in_array( $args['text_direction'], array( 'ltr', 'rtl' ), true ) ) {
		$args['text_direction'] = 'ltr';
		if ( function_exists( 'is_rtl' ) && is_rtl() ) {
			$args['text_direction'] = 'rtl';
		}
	}

	if ( ! empty( $args['charset'] ) ) {
		$args['charset'] = _canonical_charset( $args['charset'] );
	}

	return array( $message, $title, $args );
}

常见问题

FAQs
查看更多 >