_wp_build_title_and_description_for_single_post_type_block_template() – Builds the title and description of a post-specific template based on the underlying referenced post.

You appear to be a bot. Output may be restricted

Description

Builds the title and description of a post-specific template based on the underlying referenced post.

Mutates the underlying template object.

Usage

$bool = _wp_build_title_and_description_for_single_post_type_block_template( $post_type, $slug, $template );

Parameters

$post_type
( string ) required – Post type, e.g. page, post, product.
$slug
( string ) required – Slug of the post, e.g. a-story-about-shoes.
$template
( WP_Block_Template ) required – Template to mutate adding the description and title computed.

Returns

bool Returns true if the referenced post was found and false otherwise.

Source

File name: wordpress/wp-includes/block-template-utils.php
Lines:

1 to 62 of 62
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 );

  $default_args = array(
    'post_type'              => $post_type,
    'post_status'            => 'publish',
    'posts_per_page'         => 1,
    'update_post_meta_cache' => false,
    'update_post_term_cache' => false,
    'ignore_sticky_posts'    => true,
    'no_found_rows'          => true,
  );

  $args  = array(
    'name' => $slug,
  );
  $args  = wp_parse_args( $args, $default_args );
  $posts_query = new WP_Query( $args );

  if ( empty( $posts_query->posts ) ) {
    $template->title = sprintf(
      /* translators: Custom template title in the Site Editor referencing a post that was not found. 1: Post type singular name, 2: Post type slug. */
      __( 'Not found: %1$s (%2$s)' ),
      $post_type_object->labels->singular_name,
      $slug
    );

    return false;
  }

  $post_title = $posts_query->posts[0]->post_title;

  $template->title = sprintf(
    /* translators: Custom template title in the Site Editor. 1: Post type singular name, 2: Post title. */
    __( '%1$s: %2$s' ),
    $post_type_object->labels->singular_name,
    $post_title
  );

  $template->description = sprintf(
    /* translators: Custom template description in the Site Editor. %s: Post title. */
    __( 'Template for %s' ),
    $post_title
  );

  $args = array(
    'title' => $post_title,
  );
  $args                        = wp_parse_args( $args, $default_args );
  $posts_with_same_title_query = new WP_Query( $args );

  if ( count( $posts_with_same_title_query->posts ) > 1 ) {
    $template->title = sprintf(
      /* translators: Custom template title in the Site Editor. 1: Template title, 2: Post type slug. */
      __( '%1$s (%2$s)' ),
      $template->title,
      $slug
    );
  }

  return true;
}
 

 View on GitHub View on Trac