getPostTypeTemplate( $crumb['reference'], $crumb['subType'] ); break; case 'taxonomy': $template = $this->getTaxonomyTemplate( $crumb['reference'], $crumb['subType'] ); break; case 'postTypeArchive': $template = $this->getPostTypeArchiveTemplate( $crumb['reference'] ); break; case 'blog': $template = $this->getBlogArchiveTemplate(); break; case 'year': case 'month': case 'day': $template = $this->getDateArchiveTemplate( $crumb['type'] ); break; case 'search': $template = $this->getSearchTemplate(); break; case 'notFound': $template = $this->getNotFoundTemplate(); break; case 'author': $template = $this->getAuthorTemplate(); break; } $templateType = 'custom'; if ( empty( $template ) ) { $template = $this->getDefaultTemplate( $crumb ); $templateType = 'default'; } $type = null; if ( 'parent' === $crumb['subType'] ) { $type = 'parent'; } elseif ( ! in_array( $crumb['type'], [ 'homePage', 'prefix', 'wcShop', 'blog' ], true ) ) { $type = 'current'; } $templateItem = [ 'templateType' => $templateType, 'template' => $template, ]; $parentTemplateOverride = aioseo()->breadcrumbs->getOverride( 'parentTemplate' ); if ( 'parent' === $type && ! empty( $parentTemplateOverride ) ) { $templateItem['template'] = isset( $parentTemplateOverride['template'] ) ? $parentTemplateOverride['template'] : aioseo()->helpers->decodeHtmlEntities( $parentTemplateOverride ); } $templateOverride = aioseo()->breadcrumbs->getOverride( 'template' ); if ( 'current' === $type && ! empty( $templateOverride ) ) { $templateItem['template'] = isset( $templateOverride['template'] ) ? $templateOverride['template'] : aioseo()->helpers->decodeHtmlEntities( $templateOverride ); } return apply_filters( 'aioseo_breadcrumbs_template', $templateItem, $crumb ); } /** * Default html template. * * @since 4.1.1 * * @param string $type The crumb's type. * @param mixed $reference The crumb's reference. * @return string The default crumb template. */ public function getDefaultTemplate( $type = '', $reference = '' ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable $label = '#breadcrumb_label'; switch ( $type ) { case 'single': case 'page': $label = '#breadcrumb_post_title'; break; case 'taxonomy': $label = '#breadcrumb_taxonomy_title'; break; case 'postTypeArchive': $label = '#breadcrumb_archive_post_type_format'; break; case 'blog': $label = '#breadcrumb_blog_page_title'; break; case 'year': case 'month': case 'day': $label = '#breadcrumb_date_archive_' . $type; break; case 'search': $label = '#breadcrumb_search_result_format'; break; case 'notFound': $label = '#breadcrumb_404_error_format'; break; case 'author': $label = '#breadcrumb_author_display_name'; break; } return <<