Commit 85306e1fd6 for wordpress.org

commit 85306e1fd6190760970a910dd9a449244a917f1b
Author: John Blackbourn <johnbillion@git.wordpress.org>
Date:   Sat Aug 13 22:44:09 2022 +0000

    Taxonomy: Introduce the `is_term_publicly_viewable()` function.

    This is the taxonomy term counterpart to the `is_post_publicly_viewable()` function. Although the logic for terms is more straight forward this serves the same purpose as introducing the corresponding function for posts -- to centralise and reduce the logic needed to validate a term and determine if it's publicly viewable.

    Props peterwilsoncc, costdev, johnbillion

    Fixes #56215

    Built from https://develop.svn.wordpress.org/trunk@53893


    git-svn-id: http://core.svn.wordpress.org/trunk@53452 1a063a9b-81f0-0310-95a4-ce76da25c4cd

diff --git a/wp-admin/includes/class-wp-terms-list-table.php b/wp-admin/includes/class-wp-terms-list-table.php
index bfda4d7544..567f09a0d3 100644
--- a/wp-admin/includes/class-wp-terms-list-table.php
+++ b/wp-admin/includes/class-wp-terms-list-table.php
@@ -460,7 +460,6 @@ class WP_Terms_List_Table extends WP_List_Table {
 		// Restores the more descriptive, specific name for use within this method.
 		$tag      = $item;
 		$taxonomy = $this->screen->taxonomy;
-		$tax      = get_taxonomy( $taxonomy );
 		$uri      = wp_doing_ajax() ? wp_get_referer() : $_SERVER['REQUEST_URI'];

 		$edit_link = add_query_arg(
@@ -497,7 +496,7 @@ class WP_Terms_List_Table extends WP_List_Table {
 			);
 		}

-		if ( is_taxonomy_viewable( $tax ) ) {
+		if ( is_term_publicly_viewable( $tag ) ) {
 			$actions['view'] = sprintf(
 				'<a href="%s" aria-label="%s">%s</a>',
 				get_term_link( $tag ),
diff --git a/wp-includes/admin-bar.php b/wp-includes/admin-bar.php
index 5304b45ca8..19322a3451 100644
--- a/wp-includes/admin-bar.php
+++ b/wp-includes/admin-bar.php
@@ -809,7 +809,7 @@ function wp_admin_bar_edit_menu( $wp_admin_bar ) {
 			);
 		} elseif ( 'term' === $current_screen->base && isset( $tag ) && is_object( $tag ) && ! is_wp_error( $tag ) ) {
 			$tax = get_taxonomy( $tag->taxonomy );
-			if ( is_taxonomy_viewable( $tax ) ) {
+			if ( is_term_publicly_viewable( $tag ) ) {
 				$wp_admin_bar->add_node(
 					array(
 						'id'    => 'view',
diff --git a/wp-includes/taxonomy.php b/wp-includes/taxonomy.php
index f731e4f46a..b41321b059 100644
--- a/wp-includes/taxonomy.php
+++ b/wp-includes/taxonomy.php
@@ -4992,6 +4992,26 @@ function is_taxonomy_viewable( $taxonomy ) {
 	return $taxonomy->publicly_queryable;
 }

+/**
+ * Determines whether a term is publicly viewable.
+ *
+ * A term is considered publicly viewable if its taxonomy is viewable.
+ *
+ * @since 6.1.0
+ *
+ * @param int|WP_Term $term Term ID or term object.
+ * @return bool Whether the term is publicly viewable.
+ */
+function is_term_publicly_viewable( $term ) {
+	$term = get_term( $term );
+
+	if ( ! $term ) {
+		return false;
+	}
+
+	return is_taxonomy_viewable( $term->taxonomy );
+}
+
 /**
  * Sets the last changed time for the 'terms' cache group.
  *
diff --git a/wp-includes/version.php b/wp-includes/version.php
index 5e480899c0..f25ff4c893 100644
--- a/wp-includes/version.php
+++ b/wp-includes/version.php
@@ -16,7 +16,7 @@
  *
  * @global string $wp_version
  */
-$wp_version = '6.1-alpha-53892';
+$wp_version = '6.1-alpha-53893';

 /**
  * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.