Add LD+JSON Schema to Yoast Breadcrumbs


**
* Add yoast seo breadcrumbs to template - Wherever you want displayed
*/
<?php
if( !is_front_page()){
if ( function_exists('yoast_breadcrumb') ) {
yoast_breadcrumb('
<p id="breadcrumbs">','</p>
');
}
}
?>

** * Add schema to yoast seo breadcrumbs - Functions.php */ add_filter('wpseo_breadcrumb_links', 'jj_add_crumb_schema', 10, 1); function jj_add_crumb_schema($crumbs) { if ( ! is_array( $crumbs ) || $crumbs === array() ) { return $crumbs; } $listItems = []; $j = 1; foreach ( $crumbs as $i => $crumb ) { $item = []; if ( isset( $crumb['id'] ) ) { $item = [ '@id' => get_permalink($crumb['id']), 'name' => strip_tags( get_the_title( $id ) ) ]; } if ( isset( $crumb['term'] ) ) { $term = $crumb['term']; $item = [ '@id' => get_term_link( $term ), 'name' => $term->name ]; } if ( isset( $crumb['ptarchive'] ) ) { $postType = get_post_type_object($crumb['ptarchive']); $item = [ '@id' => get_post_type_archive_link($crumb['ptarchive']), 'name' => $postType->label ]; } if(isset($crumb['url'])) { if($crumb['text'] !== '') { $title = $crumb['text']; } else { $title = get_bloginfo('name'); } $item = [ '@id' => $crumb['url'], 'name' => $title ]; } $listItem = [ '@type' => 'ListItem', 'position' => $j, 'item' => $item ]; $listItems[] = $listItem; $j++; } $schema = [ '@context' => 'http://schema.org', '@type' => 'BreadcrumbList', 'itemListElement' => $listItems ]; $html = ' '; echo $html; return $crumbs; }

Want a Fast Server Like Mine?

GET VULTR!