+ return esc_url_raw( $url );
+}
+
+/**
+ * Get random header image from registered images in theme.
+ *
+ * @since 3.2.0
+ *
+ * @return string Path to header image
+ */
+function get_random_header_image() {
+ global $_wp_default_headers;
+
+ $header_image_mod = get_theme_mod( 'header_image', '' );
+ $headers = array();
+
+ if ( 'random-uploaded-image' == $header_image_mod )
+ $headers = get_uploaded_header_images();
+ elseif ( ! empty( $_wp_default_headers ) ) {
+ if ( 'random-default-image' == $header_image_mod ) {
+ $headers = $_wp_default_headers;
+ } else {
+ $is_random = get_theme_support( 'custom-header' );
+ if ( isset( $is_random[ 0 ] ) && !empty( $is_random[ 0 ][ 'random-default' ] ) )
+ $headers = $_wp_default_headers;
+ }
+ }
+
+ if ( empty( $headers ) )
+ return '';
+
+ $random_image = array_rand( $headers );
+ $header_url = sprintf( $headers[$random_image]['url'], get_template_directory_uri(), get_stylesheet_directory_uri() );
+
+ return $header_url;
+}
+
+/**
+ * Check if random header image is in use.
+ *
+ * Always true if user expressly chooses the option in Appearance > Header.
+ * Also true if theme has multiple header images registered, no specific header image
+ * is chosen, and theme turns on random headers with add_theme_support().
+ *
+ * @since 3.2.0
+ * @uses HEADER_IMAGE
+ *
+ * @param string $type The random pool to use. any|default|uploaded
+ * @return boolean
+ */
+function is_random_header_image( $type = 'any' ) {
+ $default = defined( 'HEADER_IMAGE' ) ? HEADER_IMAGE : '';
+ $header_image_mod = get_theme_mod( 'header_image', $default );
+
+ if ( 'any' == $type ) {
+ if ( 'random-default-image' == $header_image_mod || 'random-uploaded-image' == $header_image_mod || ( '' != get_random_header_image() && empty( $header_image_mod ) ) )
+ return true;
+ } else {
+ if ( "random-$type-image" == $header_image_mod )
+ return true;
+ elseif ( 'default' == $type && empty( $header_image_mod ) && '' != get_random_header_image() )
+ return true;
+ }
+
+ return false;