esc_url_raw( get_rest_url() ), 'nonce' => wp_create_nonce( 'wp_rest' ), 'versionString' => 'wp/v2/', ); wp_localize_script( 'wp-api', 'wpApiSettings', $settings ); } } if ( ! function_exists( 'rest_get_avatar_urls' ) ) { /** * Retrieves the avatar urls in various sizes based on a given email address. * * @since 4.4.0 * * @see get_avatar_url() * * @param string $email Email address. * @return array $urls Gravatar url for each size. */ function rest_get_avatar_urls( $email ) { $avatar_sizes = rest_get_avatar_sizes(); $urls = array(); foreach ( $avatar_sizes as $size ) { $urls[ $size ] = get_avatar_url( $email, array( 'size' => $size ) ); } return $urls; } } if ( ! function_exists( 'rest_get_avatar_sizes' ) ) { /** * Retrieves the pixel sizes for avatars. * * @since 4.4.0 * * @return array List of pixel sizes for avatars. Default `[ 24, 48, 96 ]`. */ function rest_get_avatar_sizes() { /** * Filter the REST avatar sizes. * * Use this filter to adjust the array of sizes returned by the * `rest_get_avatar_sizes` function. * * @since 4.4.0 * * @param array $sizes An array of int values that are the pixel sizes for avatars. * Default `[ 24, 48, 96 ]`. */ return apply_filters( 'rest_avatar_sizes', array( 24, 48, 96 ) ); } } /** * Retrieves the avatar url for a user who provided a user ID or email address. * * get_avatar() doesn't return just the URL, so we have to extract it here. * * @since 4.4.0 * @deprecated WPAPI-2.0 rest_get_avatar_urls() * @see rest_get_avatar_urls() * * @param string $email Email address. * @return string URL for the user's avatar, empty string otherwise. */ function rest_get_avatar_url( $email ) { _deprecated_function( 'rest_get_avatar_url', 'WPAPI-2.0', 'rest_get_avatar_urls' ); // Use the WP Core `get_avatar_url()` function introduced in 4.2. if ( function_exists( 'get_avatar_url' ) ) { return esc_url_raw( get_avatar_url( $email ) ); } $avatar_html = get_avatar( $email ); // Strip the avatar url from the get_avatar img tag. preg_match( '/src=["|\'](.+)[\&|"|\']/U', $avatar_html, $matches ); if ( isset( $matches[1] ) && ! empty( $matches[1] ) ) { return esc_url_raw( $matches[1] ); } return ''; } if ( ! function_exists( 'wp_is_numeric_array' ) ) { /** * Determines if the variable is a numeric-indexed array. * * @since 4.4.0 * * @param mixed $data Variable to check. * @return bool Whether the variable is a list. */ function wp_is_numeric_array( $data ) { if ( ! is_array( $data ) ) { return false; } $keys = array_keys( $data ); $string_keys = array_filter( $keys, 'is_string' ); return count( $string_keys ) === 0; } } /** * Parses and formats a MySQL datetime (Y-m-d H:i:s) for ISO8601/RFC3339. * * Explicitly strips timezones, as datetimes are not saved with any timezone * information. Including any information on the offset could be misleading. * * @deprecated WPAPI-2.0 mysql_to_rfc3339() * * @param string $date_string Date string to parse and format. * @return string Date formatted for ISO8601/RFC3339. */ function rest_mysql_to_rfc3339( $date_string ) { _deprecated_function( 'rest_mysql_to_rfc3339', 'WPAPI-2.0', 'mysql_to_rfc3339' ); return mysql_to_rfc3339( $date_string ); }