_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.
Mutates the underlying template object.
Внутренняя функция — эта функция рассчитана на использование самим ядром. Не рекомендуется использовать эту функцию в своем коде.
Хуков нет.
Возвращает
true|false
. Returns true if the referenced post was found and false otherwise.
Использование
_wp_build_title_and_description_for_single_post_type_block_template( $post_type, $slug, $template );
- $post_type(строка) (обязательный)
- Post type, e.g. page, post, product.
- $slug(строка) (обязательный)
- Slug of the post, e.g. a-story-about-shoes.
- $template(WP_Block_Template) (обязательный)
- Template to mutate adding the description and title computed.
Список изменений
С версии 6.1.0 | Введена. |
Код _wp_build_title_and_description_for_single_post_type_block_template() wp build title and description for single post type block template WP 6.7.2
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; }