Index: wp-admin/css/edit.css
===================================================================
--- wp-admin/css/edit.css	(revision 42985)
+++ wp-admin/css/edit.css	(working copy)
@@ -685,7 +685,6 @@
 
 .privacy-text-section .privacy-text-copy-button {
 	float: right;
-	margin-top: -1.8em;
 }
 
 .privacy-text-section {
@@ -694,6 +693,10 @@
 	border-left: 4px solid transparent;
 }
 
+.privacy-text-box-body .privacy-text-section:nth-child(odd):not(.text-removed):not(.text-updated) {
+	background-color: #f9f9f9;
+}
+
 .privacy-text-section.text-updated {
 	border-left-color: #46b450;
 	background-color: #ecf7ed;
@@ -704,10 +707,32 @@
 	background-color: #fbeaea;
 }
 
+.policy-text,
+.policy-actions,
 .closed .privacy-text-box-body {
 	display: none;
 }
+.policy-actions.show,
+.policy-text.show {
+	display: block;
+}
 
+.privacy-text-meta {
+	font-size: 11px;
+	color: #555D66;
+	font-weight: 600;
+}
+
+.policy-text-less {
+	float: left;
+	margin-top: 10px;
+}
+
+.policy-actions {
+	height: 30px;
+	margin-bottom: 10px;
+}
+
 /*------------------------------------------------------------------------------
   11.1 - Custom Fields
 ------------------------------------------------------------------------------*/
Index: wp-admin/includes/admin-filters.php
===================================================================
--- wp-admin/includes/admin-filters.php	(revision 42985)
+++ wp-admin/includes/admin-filters.php	(working copy)
@@ -137,7 +137,7 @@
 add_action( 'admin_init', array( 'WP_Privacy_Policy_Content', 'text_change_check' ), 20 );
 
 // Show a "postbox" with the text suggestions for a privacy policy.
-add_action( 'edit_form_after_title', array( 'WP_Privacy_Policy_Content', 'privacy_policy_postbox' ) );
+add_action( 'edit_form_after_editor', array( 'WP_Privacy_Policy_Content', 'privacy_policy_postbox' ) );
 
 // Add the suggested policy text from WordPress.
 add_action( 'admin_init', array( 'WP_Privacy_Policy_Content', 'add_suggested_content' ), 15 );
Index: wp-admin/includes/misc.php
===================================================================
--- wp-admin/includes/misc.php	(revision 42985)
+++ wp-admin/includes/misc.php	(working copy)
@@ -1362,17 +1362,16 @@
 
 		?>
 		<div class="policy-text-updated notice notice-warning is-dismissible">
-			<p><?php
-
-				_e( 'The suggested privacy policy text has changed.' );
-
-				if ( empty( $post ) || $post->ID != $policy_page_id ) {
-					?>
-					<a href="<?php echo get_edit_post_link( $policy_page_id ); ?>"><?php _e( 'Edit the privacy policy.' ); ?></a>
-					<?php
-				}
-
-			?></p>
+			<p>
+			<?php
+			_e( 'The suggested privacy policy text has changed.' );
+			if ( empty( $post ) || $post->ID != $policy_page_id ) {
+				?>
+				<a href="<?php echo get_edit_post_link( $policy_page_id ); ?>"><?php _e( 'Edit the privacy policy.' ); ?></a>
+				<?php
+			}
+			?>
+			</p>
 		</div>
 		<?php
 	}
@@ -1395,8 +1394,8 @@
 		update_option( '_wp_privacy_text_change_check', 'no-check' );
 
 		// Remove updated|removed status.
-		$old = (array) get_post_meta( $policy_page_id, '_wp_suggested_privacy_policy_content' );
-		$done = array();
+		$old          = (array) get_post_meta( $policy_page_id, '_wp_suggested_privacy_policy_content' );
+		$done         = array();
 		$update_cache = false;
 
 		foreach ( $old as $old_key => $old_data ) {
@@ -1439,11 +1438,11 @@
 	 */
 	public static function get_suggested_policy_text() {
 		$policy_page_id = (int) get_option( 'wp_page_for_privacy_policy' );
-		$new = self::$policy_content;
-		$old = (array) get_post_meta( $policy_page_id, '_wp_suggested_privacy_policy_content' );
-		$checked = array();
-		$time = time();
-		$update_cache = false;
+		$new            = self::$policy_content;
+		$old            = (array) get_post_meta( $policy_page_id, '_wp_suggested_privacy_policy_content' );
+		$checked        = array();
+		$time           = time();
+		$update_cache   = false;
 
 		// Check for no-changes and updates.
 		foreach ( $new as $new_key => $new_data ) {
@@ -1546,9 +1545,9 @@
 
 		$content_array = self::get_suggested_policy_text();
 
-		$content = '';
+		$content     = '';
 		$date_format = get_option( 'date_format' );
-		$copy = __( 'Copy' );
+		$copy        = __( 'Copy' );
 
 		foreach ( $content_array as $section ) {
 			$class = $meta = '';
@@ -1555,30 +1554,50 @@
 
 			if ( ! empty( $section['removed'] ) ) {
 				$class = ' text-removed';
-				$date = date_i18n( $date_format, $section['removed'] );
-				$meta  = sprintf( __( 'Policy text removed %s.' ), $date );
+				$date  = date_i18n( $date_format, $section['removed'] );
+				// translators: %s date.
+				$meta = sprintf( __( 'Policy text removed %s.' ), $date );
 			} elseif ( ! empty( $section['updated'] ) ) {
 				$class = ' text-updated';
-				$date = date_i18n( $date_format, $section['updated'] );
-				$meta  = sprintf( __( 'Policy text last updated %s.' ), $date );
+				$date  = date_i18n( $date_format, $section['updated'] );
+				// translators: %s date.
+				$meta = sprintf( __( 'Policy text last updated %s.' ), $date );
 			} elseif ( ! empty( $section['added'] ) ) {
 				$class = ' text-added';
-				$date = date_i18n( $date_format, $section['added'] );
-				$meta  = sprintf( __( 'Policy text added %s.' ), $date );
+				$date  = date_i18n( $date_format, $section['added'] );
+				// translators: %s date.
+				$meta = sprintf( __( 'Policy text added %s.' ), $date );
 			}
 
 			$content .= '<div class="privacy-text-section' . $class . '">';
 			$content .= '<h3>' . $section['plugin_name'] . '</h3>';
-			$content .= '<button type="button" class="privacy-text-copy-button button">';
-			$content .= $copy;
-			$content .= '<span class="screen-reader-text">' . sprintf( __( 'Copy suggested policy text from %s.' ), $section['plugin_name'] ) . '</span>';
-			$content .= '</button>';
 
 			if ( ! empty( $meta ) ) {
 				$content .= '<span class="privacy-text-meta">' . $meta . '</span>';
 			}
 
-			$content .= '<div class="policy-text">' . $section['policy_text'] . '</div>';
+			if ( strlen( $section['policy_text'] ) >= 400 ) {
+				$content .= '<div class="policy-text">' . $section['policy_text'] . '</div>';
+				$content .= '<div class="policy-actions">';
+				$content .= '<a href="#" class="policy-text-less">' . __( 'Read Less' ) . '</a>';
+				$content .= '<button type="button" class="privacy-text-copy-button button">';
+				$content .= $copy;
+				// translators: %s plugin name.
+				$content .= '<span class="screen-reader-text">' . sprintf( __( 'Copy suggested policy text from %s.' ), $section['plugin_name'] ) . '</span>';
+				$content .= '</button>';
+				$content .= '</div>';
+				$content .= '<div class="policy-text-excerpt">' . substr( $section['policy_text'], 0, 400 ) . '&hellip;</div><p><a href="#" class="policy-text-more">' . __( 'Read More' ) . '</a></p>';
+			} else {
+				$content .= '<div class="policy-text show">' . $section['policy_text'] . '</div>';
+				$content .= '<div class="policy-actions show">';
+				$content .= '<button type="button" class="privacy-text-copy-button button">';
+				$content .= $copy;
+				// translators: %s plugin name.
+				$content .= '<span class="screen-reader-text">' . sprintf( __( 'Copy suggested policy text from %s.' ), $section['plugin_name'] ) . '</span>';
+				$content .= '</button>';
+				$content .= '</div>';
+			}
+
 			$content .= "</div>\n";
 		}
 
@@ -1589,7 +1608,7 @@
 				<span class="toggle-indicator" aria-hidden="true"></span>
 			</button>
 			<div class="privacy-text-box-head hndle">
-				<h2><?php _e( 'This suggested privacy policy text comes from plugins you have installed.' ); ?></h2>
+				<h2><?php _e( 'This suggested privacy policy text comes from plugins & themes you have installed.' ); ?></h2>
 				<p>
 					<?php _e( 'We suggest reviewing this text then copying and pasting it into your privacy policy page.' ); ?>
 					<?php _e( 'Please remember you are responsible for the policies you choose to adopt, so review the content and make any necessary edits.' ); ?>
@@ -1606,7 +1625,7 @@
 	/**
 	 * Return the default suggested privacy policy content.
 	 *
-	 * @since 4.9.6	 	 
+	 * @since 4.9.6
 	 *
 	 * @return string The defauld policy content.
 	 */
@@ -1633,6 +1652,6 @@
 	 */
 	public static function add_suggested_content() {
 		$content = self::get_default_content();
-		wp_add_privacy_policy_content(  'WordPress', $content );
+		wp_add_privacy_policy_content( 'WordPress', $content );
 	}
 }
Index: wp-admin/js/post.js
===================================================================
--- wp-admin/js/post.js	(revision 42985)
+++ wp-admin/js/post.js	(working copy)
@@ -1268,19 +1268,24 @@
 		update();
 	} );
 
-	// Privacy policy postbox, copy button.
+} )( jQuery, new wp.utils.WordCounter() );
+
+
+// Privacy policy postbox, copy button, policy text read more, policy text read less.
+( function( $ ) {
+
 	$( document ).on( 'click', function( event ) {
 		var $target = $( event.target );
 		var node, range;
 
 		if ( $target.is( 'button.privacy-text-copy-button' ) ) {
-			node = $target.parent().find( 'div.policy-text' )[0];
+			node = $target.parent().parent().find( 'div.policy-text' )[0];
 
 			if ( node ) {
 				try {
 					window.getSelection().removeAllRanges();
-					range = document.createRange();  
-					range.selectNode( node );  
+					range = document.createRange();
+					range.selectNode( node );
 					window.getSelection().addRange( range );
 
 					document.execCommand( 'copy' );
@@ -1288,6 +1293,23 @@
 				} catch ( er ) {}
 			}
 		}
+
+		if ( $target.is( 'a.policy-text-more' ) ) {
+			event.preventDefault();
+			$target.toggle();
+			$target.parent().siblings('div.policy-text').toggle();
+			$target.parent().siblings('div.policy-text-excerpt').toggle();
+			$target.parent().parent().find('div.policy-actions').toggle();
+		}
+
+		if ( $target.is( 'a.policy-text-less' ) ) {
+			event.preventDefault();
+			$target.parent().toggle();
+			$target.parent().siblings( 'div.policy-text' ).toggle();
+			$target.parent().siblings('div.policy-text-excerpt').toggle();
+			$target.parent().parent().find('a.policy-text-more').toggle();
+			$target.parent().find('div.policy-actions').toggle();
+		}
 	});
 
-} )( jQuery, new wp.utils.WordCounter() );
+} )( jQuery );
