WC_Structured_Data::generate_breadcrumblist_data
Generates BreadcrumbList structured data.
Hooked into woocommerce_breadcrumb hook.
Метод класса: WC_Structured_Data{}
Хуки из метода
Возвращает
null. Ничего (null).
Использование
$WC_Structured_Data = new WC_Structured_Data(); $WC_Structured_Data->generate_breadcrumblist_data( $breadcrumbs );
- $breadcrumbs(WC_Breadcrumb) (обязательный)
- Breadcrumb data.
Код WC_Structured_Data::generate_breadcrumblist_data() WC Structured Data::generate breadcrumblist data WC 10.3.4
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 ) );
}