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!