WC_Structured_Data::generate_breadcrumblist_data()publicWC 1.0

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 8.7.0

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 ) );
}