diff --git a/functionMap.php b/functionMap.php index 72a77c4..49bbef4 100644 --- a/functionMap.php +++ b/functionMap.php @@ -73,6 +73,7 @@ 'apply_filters_ref_array' => [null, 'hook_name' => 'non-empty-string'], 'apply_filters_deprecated' => [null, 'hook_name' => 'non-empty-string'], 'backslashit' => [null, '@phpstan-pure' => ''], + 'block_core_breadcrumbs_create_item' => ['($is_paged is true ? array{label: T, url: string} : array{label: T})', '@phpstan-template T' => 'of string', 'text' => 'T'], 'block_core_home_link_build_css_colors' => ['array{css_classes: list, inline_styles: string}'], 'block_core_home_link_build_css_font_sizes' => ['array{css_classes: list, inline_styles: string}'], 'block_core_navigation_build_css_colors' => ['array{css_classes: list, inline_styles: string, overlay_css_classes: list, overlay_inline_styles: string}'], diff --git a/tests/data/return/block-core.php b/tests/data/return/block-core.php index 0be2ab4..0b6b9fd 100644 --- a/tests/data/return/block-core.php +++ b/tests/data/return/block-core.php @@ -34,3 +34,9 @@ assertType('array{css_classes: list, inline_styles: string}', block_core_navigation_submenu_build_css_font_sizes(Faker::array())); assertType('array{css_classes: list, inline_styles: string, overlay_css_classes: list, overlay_inline_styles: string}', block_core_page_list_build_css_colors(Faker::array(), Faker::array())); assertType('array{css_classes: list, inline_styles: string}', block_core_page_list_build_css_font_sizes(Faker::array())); + +// Breadcrumbs +assertType('array{label: string, url?: string}', block_core_breadcrumbs_create_item(Faker::string(), Faker::bool())); +assertType("array{label: 'foo', url?: string}", block_core_breadcrumbs_create_item('foo', Faker::bool())); +assertType('array{label: string}', block_core_breadcrumbs_create_item(Faker::string(), false)); +assertType('array{label: string, url: string}', block_core_breadcrumbs_create_item(Faker::string(), true)); diff --git a/wordpress-stubs.php b/wordpress-stubs.php index 000a323..1626fd9 100644 --- a/wordpress-stubs.php +++ b/wordpress-stubs.php @@ -113436,6 +113436,9 @@ function block_core_breadcrumbs_create_page_number_item($query_var = 'paged') * @param bool $is_paged Whether we're on a paginated view. * * @return array The breadcrumb item data. + * @phpstan-template T of string + * @phpstan-param T $text + * @phpstan-return ($is_paged is true ? array{label: T, url: string} : array{label: T}) */ function block_core_breadcrumbs_create_item($text, $is_paged = \false) {