/** * Generates BreadcrumbList structured data. * * Hooked into `woocommerce_breadcrumb` action hook. * * @param WC_Breadcrumb $breadcrumbs Breadcrumb data. */ public function generate_breadcrumblist_data($breadcrumbs) { $crumbs = $breadcrumbs->get_breadcrumb(); $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]) && sizeof($crumbs) !== $key + 1) { $markup['itemListElement'][$key]['item'] += array('@id' => $crumb[1]); } } $this->set_data(apply_filters('woocommerce_structured_data_breadcrumblist', $markup, $breadcrumbs)); }