<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[54333] trunk/src/wp-includes/block-template-utils.php: Editor: Revert dynamic template names and descriptions.</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/54333">54333</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/54333","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>davidbaumwald</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2022-09-27 16:30:32 +0000 (Tue, 27 Sep 2022)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Editor: Revert dynamic template names and descriptions.

After discussions with the Editor Tech leads for 6.1(@bernhard-reiter, @cbravobernal, and @ndiego) and additional guidance from @hellofromtonya, the decision has been made to exclude [https://github.com/WordPress/gutenberg/pull/43862 Gutenberg PR <a href="https://core.trac.wordpress.org/ticket/43862">#43862</a>] from the pre-Beta 2 Gutenberg sync PR and revert <a href="https://core.trac.wordpress.org/changeset/54280">[54280]</a>. Why? <a href="https://core.trac.wordpress.org/changeset/54280">[54280]</a> added the feature's PHP code, but the JS package updates were not included before feature freeze(Beta 1), meaning the feature was incomplete. As the PHP code does not work without the JS package update, the feature is incomplete and missed the feature freeze deadline.

Leaving the PHP code was discussed. However, there is a risk of it needing to change which could complicate backwards compatibility in 6.2 when the feature is eventually introduced.

Follow-up to <a href="https://core.trac.wordpress.org/changeset/54280">[54280]</a>.

Props hellofromTonya, bernhard-reiter, cbravobernal.
See <a href="https://core.trac.wordpress.org/ticket/56467">#56467</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcwpincludesblocktemplateutilsphp">trunk/src/wp-includes/block-template-utils.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcwpincludesblocktemplateutilsphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/block-template-utils.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/block-template-utils.php    2022-09-27 16:29:59 UTC (rev 54332)
+++ trunk/src/wp-includes/block-template-utils.php      2022-09-27 16:30:32 UTC (rev 54333)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -531,136 +531,6 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Builds the title and description of a post specific template based on the underlying referenced post.
- * Mutates the underlying template object.
- *
- * @access private
- * @internal
- *
- * @param string            $post_type Post type e.g.: page, post, product.
- * @param string            $slug      Slug of the post e.g.: a-story-about-shoes.
- * @param WP_Block_Template $template  Template to mutate adding the description and title computed.
- *
- * @return boolean Returns true if the referenced post was found and false otherwise.
- */
-function _wp_build_title_and_description_for_single_post_type_block_template( $post_type, $slug, WP_Block_Template $template ) {
-       $post_type_object = get_post_type_object( $post_type );
-
-       $posts = get_posts(
-               array(
-                       'name'      => $slug,
-                       'post_type' => $post_type,
-               )
-       );
-       if ( empty( $posts ) ) {
-               $template->title = sprintf(
-                       // translators: Represents the title of a user's custom template in the Site Editor referencing a post that was not found, where %1$s is the singular name of a post type and %2$s is the slug of the deleted post, e.g. "Not found: Page(hello)".
-                       __( 'Not found: %1$s(%2$s)' ),
-                       $post_type_object->labels->singular_name,
-                       $slug
-               );
-               return false;
-       }
-
-       $post_title = $posts[0]->post_title;
-
-       $template->title = sprintf(
-               // translators: Represents the title of a user's custom template in the Site Editor, where %1$s is the singular name of a post type and %2$s is the name of the post, e.g. "Page: Hello".
-               __( '%1$s: %2$s' ),
-               $post_type_object->labels->singular_name,
-               $post_title
-       );
-       $template->description = sprintf(
-               // translators: Represents the description of a user's custom template in the Site Editor, e.g. "Template for Page: Hello".
-               __( 'Template for %1$s' ),
-               $post_title
-       );
-
-       $posts_with_same_title = get_posts(
-               array(
-                       'title'       => $post_title,
-                       'post_type'   => $post_type,
-                       'post_status' => 'publish',
-               )
-       );
-       if ( count( $posts_with_same_title ) > 1 ) {
-               $template->title = sprintf(
-                       // translators: Represents the title of a user's custom template in the Site Editor, where %1$s is the template title and %2$s is the slug of the post type, e.g. "Project: Hello (project_type)".
-                       __( '%1$s (%2$s)' ),
-                       $template->title,
-                       $slug
-               );
-       }
-       return true;
-}
-
-/**
- * Builds the title and description of a taxonomy specific template based on the underlying entity referenced.
- * Mutates the underlying template object.
- *
- * @access private
- * @internal
- *
- * @param string            $taxonomy Identifier of the taxonomy, e.g.: category.
- * @param string            $slug     Slug of the term, e.g.: shoes.
- * @param WP_Block_Template $template Template to mutate adding the description and title computed.
- *
- * @return boolean True if an term referenced was found and false otherwise.
- */
-function _wp_build_title_and_description_for_taxonomy_block_template( $taxonomy, $slug, WP_Block_Template $template ) {
-       $taxonomy_object = get_taxonomy( $taxonomy );
-
-       $terms = get_terms(
-               array(
-                       'taxonomy'   => $taxonomy,
-                       'hide_empty' => false,
-                       'slug'       => $slug,
-               )
-       );
-
-       if ( empty( $terms ) ) {
-               $template->title = sprintf(
-                       // translators: Represents the title of a user's custom template in the Site Editor referencing a taxonomy term that was not found, where %1$s is the singular name of a taxonomy and %2$s is the slug of the deleted term, e.g. "Not found: Category(shoes)".
-                       __( 'Not found: %1$s(%2$s)' ),
-                       $taxonomy_object->labels->singular_name,
-                       $slug
-               );
-               return false;
-       }
-
-       $term_title = $terms[0]->name;
-
-       $template->title = sprintf(
-               // translators: Represents the title of a user's custom template in the Site Editor, where %1$s is the singular name of a taxonomy and %2$s is the name of the term, e.g. "Category: shoes".
-               __( '%1$s: %2$s' ),
-               $taxonomy_object->labels->singular_name,
-               $term_title
-       );
-       $template->description = sprintf(
-               // translators: Represents the description of a user's custom template in the Site Editor, e.g. "Template for Category: shoes".
-               __( 'Template for %1$s' ),
-               $term_title
-       );
-
-       $terms_with_same_title = get_terms(
-               array(
-                       'taxonomy'   => $taxonomy,
-                       'hide_empty' => false,
-                       'name'       => $term_title,
-               )
-       );
-       if ( count( $terms_with_same_title ) > 1 ) {
-               $template->title = sprintf(
-                       // translators: Represents the title of a user's custom template in the Site Editor, where %1$s is the template title and %2$s is the slug of the taxonomy, e.g. "Category: shoes (product_tag)".
-                       __( '%1$s (%2$s)' ),
-                       $template->title,
-                       $slug
-               );
-       }
-       return true;
-}
-
-/**
</del><span class="cx" style="display: block; padding: 0 10px">  * Builds a unified template object based a post Object.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @since 5.9.0
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -719,103 +589,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        // If it is a block template without description and without title or with title equal to the slug.
-       if ( 'wp_template' === $post->post_type && empty( $template->description ) && ( empty( $template->title ) || $template->title === $template->slug ) ) {
-               $matches = array();
-               // If it is a block template for a single author, page, post, tag, category, custom post type or custom taxonomy.
-               if ( preg_match( '/(author|page|single|tag|category|taxonomy)-(.+)/', $template->slug, $matches ) ) {
-                       $type           = $matches[1];
-                       $slug_remaining = $matches[2];
-                       switch ( $type ) {
-                               case 'author':
-                                       $nice_name = $slug_remaining;
-                                       $users     = get_users(
-                                               array(
-                                                       'capability'     => 'edit_posts',
-                                                       'search'         => $nice_name,
-                                                       'search_columns' => array( 'user_nicename' ),
-                                                       'fields'         => 'display_name',
-                                               )
-                                       );
-
-                                       if ( empty( $users ) ) {
-                                               $template->title = sprintf(
-                                                       // translators: Represents the title of a user's custom template in the Site Editor referencing a deleted author, where %s is the author's nicename, e.g. "Deleted author: jane-doe".
-                                                       __( 'Deleted author: %s' ),
-                                                       $nice_name
-                                               );
-                                       } else {
-                                               $author_name = $users[0];
-
-                                               $template->title = sprintf(
-                                                       // translators: Represents the title of a user's custom template in the Site Editor, where %s is the author's name, e.g. "Author: Jane Doe".
-                                                       __( 'Author: %s' ),
-                                                       $author_name
-                                               );
-                                               $template->description = sprintf(
-                                                       // translators: Represents the description of a user's custom template in the Site Editor, e.g. "Template for Author: Jane Doe".
-                                                       __( 'Template for %1$s' ),
-                                                       $author_name
-                                               );
-
-                                               $users_with_same_name = get_users(
-                                                       array(
-                                                               'capability'     => 'edit_posts',
-                                                               'search'         => $author_name,
-                                                               'search_columns' => array( 'display_name' ),
-                                                               'fields'         => 'display_name',
-                                                       )
-                                               );
-                                               if ( count( $users_with_same_name ) > 1 ) {
-                                                       $template->title = sprintf(
-                                                               // translators: Represents the title of a user's custom template in the Site Editor, where %1$s is the template title of an author template and %2$s is the nicename of the author, e.g. "Author: Jorge (jorge-costa)".
-                                                               __( '%1$s (%2$s)' ),
-                                                               $template->title,
-                                                               $nice_name
-                                                       );
-                                               }
-                                       }
-                                       break;
-                               case 'page':
-                                       _wp_build_title_and_description_for_single_post_type_block_template( 'page', $slug_remaining, $template );
-                                       break;
-                               case 'single':
-                                       $post_types = get_post_types();
-                                       foreach ( $post_types as $post_type ) {
-                                               $post_type_length = strlen( $post_type ) + 1;
-                                               // If $slug_remaining starts with $post_type followed by a hyphen.
-                                               if ( 0 === strncmp( $slug_remaining, $post_type . '-', $post_type_length ) ) {
-                                                       $slug  = substr( $slug_remaining, $post_type_length, strlen( $slug_remaining ) );
-                                                       $found = _wp_build_title_and_description_for_single_post_type_block_template( $post_type, $slug, $template );
-                                                       if ( $found ) {
-                                                               break;
-                                                       }
-                                               }
-                                       }
-                                       break;
-                               case 'tag':
-                                       _wp_build_title_and_description_for_taxonomy_block_template( 'post_tag', $slug_remaining, $template );
-                                       break;
-                               case 'category':
-                                       _wp_build_title_and_description_for_taxonomy_block_template( 'category', $slug_remaining, $template );
-                                       break;
-                               case 'taxonomy':
-                                       $taxonomies = get_taxonomies();
-                                       foreach ( $taxonomies as $taxonomy ) {
-                                               $taxonomy_length = strlen( $taxonomy ) + 1;
-                                               // If $slug_remaining starts with $taxonomy followed by a hyphen.
-                                               if ( 0 === strncmp( $slug_remaining, $taxonomy . '-', $taxonomy_length ) ) {
-                                                       $slug  = substr( $slug_remaining, $taxonomy_length, strlen( $slug_remaining ) );
-                                                       $found = _wp_build_title_and_description_for_taxonomy_block_template( $taxonomy, $slug, $template );
-                                                       if ( $found ) {
-                                                               break;
-                                                       }
-                                               }
-                                       }
-                                       break;
-                       }
-               }
-       }
</del><span class="cx" style="display: block; padding: 0 10px">         return $template;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span></span></pre>
</div>
</div>

</body>
</html>