_build_block_template_object_from_post_object()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
_build_block_template_object_from_post_object( WP_Post $post, array $terms = array(), array $meta = array() ): WP_Block_Template|WP_Error
Описание
Это вспомогательная функция, создающая объект шаблона блока из переданного объекта записи.
Она самодостаточна: использует только информацию, переданную в аргументах, и не обращается к базе данных за дополнительными данными.
Оригинал (английский)
This is a helper function that creates a block template object from a given post object.
It is self-sufficient in that it only uses information passed as arguments; it does not query the database for additional information.
Параметры
$post
WP_Post
обязательный
$terms
array
необязательный
= array()
$meta
array
необязательный
= array()
Возвращаемое значение
WP_Block_Template|WP_Error
Исходный код
wp-includes/block-template-utils.php:843
function _build_block_template_object_from_post_object( $post, $terms = array(), $meta = array() ) {
if ( empty( $terms['wp_theme'] ) ) {
return new WP_Error( 'template_missing_theme', __( 'No theme is defined for this template.' ) );
}
$theme = $terms['wp_theme'];
$default_template_types = get_default_block_template_types();
$template_file = _get_block_template_file( $post->post_type, $post->post_name );
$has_theme_file = get_stylesheet() === $theme && null !== $template_file;
$template = new WP_Block_Template();
$template->wp_id = $post->ID;
$template->id = $theme . '//' . $post->post_name;
$template->theme = $theme;
$template->content = $post->post_content;
$template->slug = $post->post_name;
$template->source = 'custom';
$template->origin = ! empty( $meta['origin'] ) ? $meta['origin'] : null;
$template->type = $post->post_type;
$template->description = $post->post_excerpt;
$template->title = $post->post_title;
$template->status = $post->post_status;
$template->has_theme_file = $has_theme_file;
$template->is_custom = empty( $meta['is_wp_suggestion'] );
$template->author = $post->post_author;
$template->modified = $post->post_modified;
if ( 'wp_template' === $post->post_type && $has_theme_file && isset( $template_file['postTypes'] ) ) {
$template->post_types = $template_file['postTypes'];
}
if ( 'wp_template' === $post->post_type && isset( $default_template_types[ $template->slug ] ) ) {
$template->is_custom = false;
}
if ( 'wp_template_part' === $post->post_type && isset( $terms['wp_template_part_area'] ) ) {
$template->area = $terms['wp_template_part_area'];
}
return $template;
}
История изменений
| Версия | Описание |
|---|---|
| 6.5.3 | Introduced. |

