Index: src/wp-includes/formatting.php
===================================================================
--- src/wp-includes/formatting.php	(revision 32291)
+++ src/wp-includes/formatting.php	(working copy)
@@ -3145,6 +3145,23 @@
 }
 
 /**
+ * Wrapper for esc_url
+ *
+ * @since 4.3
+ *
+ * @uses esc_url()
+ *
+ * @param string $url The URL to be cleaned.
+ * @param array $protocols Optional. An array of acceptable protocols.
+ *		Defaults to 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn' if not set.
+ * @param string $_context Private. Use esc_url_raw() for database usage.
+ * @return string The cleaned $url after the 'clean_url' filter is applied.
+ */
+function echo_url( $url, $protocols = null, $_context = 'display' ) {
+	echo esc_url( $url, $protocols , $_context );
+}
+
+/**
  * Performs esc_url() for database usage.
  *
  * @since 2.8.0
@@ -3230,7 +3247,20 @@
 	return apply_filters( 'esc_html', $safe_text, $text );
 }
 
+
 /**
+ * Wrapper for esc_html()
+ *
+ * @since 4.3
+ * @uses esc_html()
+ *
+ * @param string $text
+ */
+function echo_html( $text ) {
+	echo esc_html( $text );
+}
+
+/**
  * Escaping for HTML attributes.
  *
  * @since 2.8.0
@@ -3256,6 +3286,18 @@
 }
 
 /**
+ * Wrapper for esc_attr
+ *
+ * @since 4.3
+ * @uses esc_attr
+ *
+ * @param $text
+ */
+function echo_attr( $text ) {
+	echo esc_attr( $text );
+}
+
+/**
  * Escaping for textarea values.
  *
  * @since 3.1.0
Index: tests/phpunit/tests/formatting/EscAttr.php
===================================================================
--- tests/phpunit/tests/formatting/EscAttr.php	(revision 32291)
+++ tests/phpunit/tests/formatting/EscAttr.php	(working copy)
@@ -29,4 +29,28 @@
 		$out = esc_attr( 'foo & bar &baz; &apos;' );
 		$this->assertEquals( "foo &amp; bar &amp;baz; &apos;", $out );
 	}
+
+	/**
+	 * Confirm output for esc_attr and echo_attr match
+	 * @ticket 32008
+	 * @dataProvider data_attrs_list
+	 */
+	function test_echo_attr_equals_esc_attr( $input ) {
+
+		$esc_attr = esc_attr( $input );
+
+		ob_start();
+		echo_attr( $input );
+		$echo_attr = ob_get_clean();
+
+		$this->assertEquals( $esc_attr , $echo_attr );
+	}
+
+	function data_attrs_list() {
+		return array(
+			array( '"double quotes"' ),
+			array( "'single quotes'" ),
+			array( 'foo & bar &baz; &apos;' ),
+		);
+	}
 }
Index: tests/phpunit/tests/formatting/EscHtml.php
===================================================================
--- tests/phpunit/tests/formatting/EscHtml.php	(revision 32291)
+++ tests/phpunit/tests/formatting/EscHtml.php	(working copy)
@@ -37,4 +37,30 @@
 		$res = '&amp; &#xA3; &quot; &amp;';
 		$this->assertEquals( $res, esc_html($source) );
 	}
+
+	/**
+	 * Make sure esc_html output matches echo_html
+	 * @ticket 32008
+	 * @dataProvider data_html_to_escape
+	 */
+	function test_echo_html_equals_esc_html( $input ){
+		$output_esc_html = esc_html( $input );
+
+		ob_start();
+		echo_html( $input );
+		$output_echo_html = ob_get_clean();
+
+		$this->assertEquals( $output_esc_html, $output_echo_html );
+	}
+
+	function data_html_to_escape() {
+		return array(
+			array( 'The quick brown fox.' ),
+			array( 'http://localhost/trunk/wp-login.php?action=logout&_wpnonce=cd57d75985' ),
+			array( "SELECT meta_key, meta_value FROM wp_trunk_sitemeta WHERE meta_key IN ('site_name', 'siteurl', 'active_sitewide_plugins', '_site_transient_timeout_theme_roots', '_site_transient_theme_roots', 'site_admins', 'can_compress_scripts', 'global_terms_enabled') AND site_id = 1"),
+			array( 'penn & teller & at&t' ),
+			array( 'this > that < that <randomhtml />' ),
+			array( '&#038; &#x00A3; &#x22; &amp;' ),
+		);
+	}
 }
Index: tests/phpunit/tests/formatting/EscUrl.php
===================================================================
--- tests/phpunit/tests/formatting/EscUrl.php	(revision 32291)
+++ tests/phpunit/tests/formatting/EscUrl.php	(working copy)
@@ -68,4 +68,27 @@
 	function test_protocol_relative_with_colon() {
 		$this->assertEquals( '//example.com/foo?foo=abc:def', esc_url( '//example.com/foo?foo=abc:def' ) );
 	}
+
+	/**
+	 * @ticket 32008
+	 * @dataProvider data_url_list
+	 */
+	function test_esc_url_matches_echo_url( $input ) {
+
+		$esc_url = esc_url( $input );
+
+		ob_start();
+		echo_url( $input );
+		$echo_url = ob_get_clean();
+
+		$this->assertEquals( $esc_url, $echo_url );
+	}
+
+	function data_url_list() {
+		return array(
+			array('http://example.com/'),
+			array('http://example.com/Mr WordPress'),
+			array('//example.com/'),
+		);
+	}
 }
