Index: content-reference.php
===================================================================
--- content-reference.php	(revision 2374)
+++ content-reference.php	(working copy)
@@ -4,6 +4,8 @@
 
 	<?php echo get_deprecated(); ?>
 
+	<?php echo get_private_access_message(); ?>
+
 	<h1><a href="<?php the_permalink() ?>"><?php echo get_signature(); ?></a></h1>
 
 	<section class="summary">
Index: inc/formatting.php
===================================================================
--- inc/formatting.php	(revision 2371)
+++ inc/formatting.php	(working copy)
@@ -132,38 +132,7 @@
 
 				// Link to an internal resource.
 				else {
-
-					// Link to class variable: {@see WP_Rewrite::$index}
-					if ( false !== strpos( $link, '::$' ) ) {
-						// Nothing to link to currently.
-					}
-
-					// Link to class method: {@see WP_Query::query()}
-					elseif ( false !== strpos( $link, '::' ) ) {
-						$link = '<a href="' .
-							get_post_type_archive_link( 'wp-parser-class' ) .
-							str_replace( array( '::', '()' ), array( '/', '' ), $link ) .
-							'">' . esc_html( $link ) . '</a>';
-					}
-
-					// Link to hook: {@see 'pre_get_search_form'}
-					elseif ( 1 === preg_match( '/^(&#8216;)\w+(&#8217;)$/', $link, $hook ) ) {
-						if ( ! empty( $hook[0] ) ) {
-							$link = '<a href="' .
-								get_post_type_archive_link( 'wp-parser-hook' ) .
-								str_replace( array( '&#8216;', '&#8217;' ), '', $link ) .
-								'">' . esc_html( $link ) . '</a>';
-						}
-					}
-
-					// Link to function: {@see esc_attr()}
-					else {
-						$link = '<a href="' .
-							get_post_type_archive_link( 'wp-parser-function' ) .
-							str_replace( '()', '', $link ) .
-							'">' . esc_html( $link ) . '</a>';
-					}
-
+					$link = self::get_internal_element_link( $link );
 				}
 
 				return $link;
@@ -173,6 +142,49 @@
 	}
 
 	/**
+	 * Parses and links an internal element if a valid element is found.
+	 *
+	 * @static
+	 * @access public
+	 *
+	 * @param string $link Element string.
+	 * @param string HTML link markup if a valid element was found.
+	 */
+	public static function get_internal_element_link( $link ) {
+		// Link to class variable: {@see WP_Rewrite::$index}
+		if ( false !== strpos( $link, '::$' ) ) {
+			// Nothing to link to currently.
+		}
+
+		// Link to class method: {@see WP_Query::query()}
+		elseif ( false !== strpos( $link, '::' ) ) {
+			$link = '<a href="' .
+			        get_post_type_archive_link( 'wp-parser-class' ) .
+			        str_replace( array( '::', '()' ), array( '/', '' ), $link ) .
+			        '">' . esc_html( $link ) . '</a>';
+		}
+
+		// Link to hook: {@see 'pre_get_search_form'}
+		elseif ( 1 === preg_match( '/^(&#8216;)\w+(&#8217;)$/', $link, $hook ) ) {
+			if ( ! empty( $hook[0] ) ) {
+				$link = '<a href="' .
+				        get_post_type_archive_link( 'wp-parser-hook' ) .
+				        str_replace( array( '&#8216;', '&#8217;' ), '', $link ) .
+				        '">' . esc_html( $link ) . '</a>';
+			}
+		}
+
+		// Link to function: {@see esc_attr()}
+		else {
+			$link = '<a href="' .
+			        get_post_type_archive_link( 'wp-parser-function' ) .
+			        str_replace( '()', '', $link ) .
+			        '">' . esc_html( $link ) . '</a>';
+		}
+		return $link;
+	}
+
+	/**
 	 * Fixes unintended markup generated by Markdown during parsing.
 	 *
 	 * The parser interprets underscores surrounding text as Markdown indicating
Index: inc/template-tags.php
===================================================================
--- inc/template-tags.php	(revision 2371)
+++ inc/template-tags.php	(working copy)
@@ -1349,4 +1349,50 @@
 		}
 		return get_post_field( $field, $explanation, $context );
 	}
+
+	/**
+	 * Retrieves private access data for a given post.
+	 *
+	 * @param int|WP_Post $post Optional. Post object or ID. Default global `$post`.
+	 * @return string Private access message if the given reference is considered "private".
+	 */
+	function get_private_access_message( $post = null ) {
+		if ( ! $post = get_post( $post ) ) {
+			return '';
+		}
+
+		// Currently only handling private access messages for functions and hooks.
+		if ( ! in_array( get_post_type( $post ), array( 'wp-parser-function', 'wp-parser-hook' ) ) ) {
+			return '';
+		}
+
+		$tags        = get_post_meta( $post->ID, '_wp-parser_tags', true );
+		$access_tags = wp_filter_object_list( $tags, array(
+			'name'    => 'access',
+			'content' => 'private'
+		) );
+
+		if ( ! empty( $access_tags ) ) {
+			$referral = array_shift( wp_filter_object_list( $tags, array( 'name' => 'see' ) ) );
+
+			if ( ! empty( $referral['refers'] ) ) {
+				$refers = sanitize_text_field( $referral['refers'] );
+
+				if ( ! empty( $refers ) ) {
+					/* translators: 1: Linked internal element name */
+					$altnerative_string = sprintf( __( ' Use %s instead.', 'wporg' ), \DevHub_Formatting::get_internal_element_link( $refers ) );
+				}
+			} else {
+				$altnerative_string = '';
+			}
+
+			return
+				'<p class="private-access">' .
+			       /* translators: 1: String for alternative function (if one exists) */
+			       sprintf( __( 'This function&#8217;s access is marked private. This means it is not intended for use by plugin or theme developers, only in other core functions. It is listed here for completeness.%s', 'wporg' ),
+				       $altnerative_string
+			       ) .
+		       '</p>';
+		}
+	}
 }
Index: scss/main.scss
===================================================================
--- scss/main.scss	(revision 2371)
+++ scss/main.scss	(working copy)
@@ -1019,6 +1019,11 @@
 			color: #be2423;
 			font-style: italic;
 		}
+		.private-access {
+			color: #be2423;
+			font-weight: bold;
+			padding: 20px;
+		}
 	}
 
 	&.archive, &.search {
Index: stylesheets/main.css
===================================================================
--- stylesheets/main.css	(revision 2371)
+++ stylesheets/main.css	(working copy)
@@ -1222,6 +1222,11 @@
   color: #be2423;
   font-style: italic;
 }
+.devhub-wrap .wp-parser-class .private-access, .devhub-wrap .wp-parser-function .private-access, .devhub-wrap .wp-parser-hook .private-access, .devhub-wrap .wp-parser-method .private-access {
+  color: #be2423;
+  font-weight: bold;
+  padding: 20px;
+}
 .devhub-wrap.archive .wp-parser-class h1 a, .devhub-wrap.archive .wp-parser-function h1 a, .devhub-wrap.archive .wp-parser-hook h1 a, .devhub-wrap.archive .wp-parser-method h1 a, .devhub-wrap.search .wp-parser-class h1 a, .devhub-wrap.search .wp-parser-function h1 a, .devhub-wrap.search .wp-parser-hook h1 a, .devhub-wrap.search .wp-parser-method h1 a {
   font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
   color: #21759b;
