WC_Structured_Data::generate_breadcrumblist_data( WC_Breadcrumb $breadcrumbs )
Generates BreadcrumbList structured data.
Description Description
Hooked into woocommerce_breadcrumb action hook.
Parameters Parameters
- $breadcrumbs
-
(Required) Breadcrumb data.
Source Source
File: includes/class-wc-structured-data.php
public function generate_breadcrumblist_data( $breadcrumbs ) {
$crumbs = $breadcrumbs->get_breadcrumb();
if ( empty( $crumbs ) || ! is_array( $crumbs ) ) {
return;
}
$markup = array();
$markup['@type'] = 'BreadcrumbList';
$markup['itemListElement'] = array();
foreach ( $crumbs as $key => $crumb ) {
$markup['itemListElement'][ $key ] = array(
'@type' => 'ListItem',
'position' => $key + 1,
'item' => array(
'name' => $crumb[0],
),
);
if ( ! empty( $crumb[1] ) ) {
$markup['itemListElement'][ $key ]['item'] += array( '@id' => $crumb[1] );
} elseif ( isset( $_SERVER['HTTP_HOST'], $_SERVER['REQUEST_URI'] ) ) {
$current_url = set_url_scheme( 'http://' . wp_unslash( $_SERVER['HTTP_HOST'] ) . wp_unslash( $_SERVER['REQUEST_URI'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
$markup['itemListElement'][ $key ]['item'] += array( '@id' => $current_url );
}
}
$this->set_data( apply_filters( 'woocommerce_structured_data_breadcrumblist', $markup, $breadcrumbs ) );
}