+ /**
+ * Enqueue scripts and styles for the login page.
+ *
+ * @since 3.1.0
+ */
+ do_action( 'login_enqueue_scripts' );
+ /**
+ * Fires in the login page header after scripts are enqueued.
+ *
+ * @since 2.1.0
+ */
+ do_action( 'login_head' );
+
+ if ( is_multisite() ) {
+ $login_header_url = network_home_url();
+ $login_header_title = get_current_site()->site_name;
+ } else {
+ $login_header_url = __( 'https://wordpress.org/' );
+ $login_header_title = __( 'Powered by WordPress' );
+ }
+
+ /**
+ * Filter link URL of the header logo above login form.
+ *
+ * @since 2.1.0
+ *
+ * @param string $login_header_url Login header logo URL.
+ */
+ $login_header_url = apply_filters( 'login_headerurl', $login_header_url );
+ /**
+ * Filter the title attribute of the header logo above login form.
+ *
+ * @since 2.1.0
+ *
+ * @param string $login_header_title Login header logo title attribute.
+ */
+ $login_header_title = apply_filters( 'login_headertitle', $login_header_title );
+
+ $classes = array( 'login-action-' . $action, 'wp-core-ui' );
+ if ( wp_is_mobile() )
+ $classes[] = 'mobile';
+ if ( is_rtl() )
+ $classes[] = 'rtl';
+ if ( $interim_login ) {
+ $classes[] = 'interim-login';
+ ?>
+ <style type="text/css">html{background-color: transparent;}</style>
+ <?php
+
+ if ( 'success' === $interim_login )
+ $classes[] = 'interim-login-success';
+ }
+ $classes[] =' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_locale() ) ) );
+
+ /**
+ * Filter the login page body classes.
+ *
+ * @since 3.5.0
+ *
+ * @param array $classes An array of body classes.
+ * @param string $action The action that brought the visitor to the login page.
+ */
+ $classes = apply_filters( 'login_body_class', $classes, $action );
+
+ ?>
+ </head>
+ <body class="login <?php echo esc_attr( implode( ' ', $classes ) ); ?>">
+ <div id="login">
+ <h1><a href="<?php echo esc_url( $login_header_url ); ?>" title="<?php echo esc_attr( $login_header_title ); ?>"><?php bloginfo( 'name' ); ?></a></h1>
+ <?php
+
+ unset( $login_header_url, $login_header_title );
+
+ /**
+ * Filter the message to display above the login form.
+ *
+ * @since 2.1.0
+ *
+ * @param string $message Login message text.
+ */
+ $message = apply_filters( 'login_message', $message );
+ if ( !empty( $message ) )
+ echo $message . "\n";
+
+ // In case a plugin uses $error rather than the $wp_errors object