diff --git a/src/wp-admin/includes/admin-filters.php b/src/wp-admin/includes/admin-filters.php index 79e30c0eda..bfc9f51cfc 100644 --- a/src/wp-admin/includes/admin-filters.php +++ b/src/wp-admin/includes/admin-filters.php @@ -149,3 +149,6 @@ add_action( 'admin_init', array( 'WP_Privacy_Policy_Content', 'add_suggested_con // Update the cached policy info when the policy page is updated. add_action( 'post_updated', array( 'WP_Privacy_Policy_Content', '_policy_page_updated' ) ); + +// Append '(Draft)' to draft page titles in the privacy page dropdown. +add_filter( 'list_pages', '_wp_privacy_settings_filter_draft_page_titles', 10, 2 ); diff --git a/src/wp-admin/includes/misc.php b/src/wp-admin/includes/misc.php index 00397dd564..013d0062c1 100644 --- a/src/wp-admin/includes/misc.php +++ b/src/wp-admin/includes/misc.php @@ -1271,6 +1271,27 @@ All at ###SITENAME### } } +/** + * Appends '(Draft)' to draft page titles in the privacy page dropdown + * so that unpublished content is obvious. + * + * @since 4.9.7 + * @access private + * + * @param string $title Page title. + * @param WP_Post $page Page data object. + * + * @return string Page title. + */ +function _wp_privacy_settings_filter_draft_page_titles( $title, $page ) { + if ( 'draft' === $page->post_status && 'privacy' === get_current_screen()->id ) { + /* translators: %s: Page Title */ + $title = sprintf( __( '%s (Draft)' ), $title ); + } + + return $title; +} + /** * WP_Privacy_Policy_Content class. * TODO: move this to a new file.