Introduced in Breadcrumb NavXT 5.7.0, bcn_display_json_ld()
is the newest member of the bcn_display* family. Since it outputs the breadcrumb trail in a Schema.org BreadcrumbList compliant JSON-LD format, there are numerous uses for this function.
Basic
To simply output the JSON-LD breadcrumb trail, visible to search engines but hidden from users, the following can be placed in the currently active theme’s header.php in the block.
<?php if (function_exists(‘bcn_display_json_ld()’)) {?> <script type="application/ld+json"><?php bcn_display_json_ld();?></script> <?php } ?>
Enhanced Basic
Rather than modifying a theme file, a hook into wp_head
can be used. The benefit of this approach is it will work across theme upgrades and migrations. This requires placing the following code in a site specific plugin:
add_action('wp_head', 'my_json_ld_breadcrumb_trail', 10); function my_json_ld_breadcrumb_trail() { if (function_exists(‘bcn_display_json_ld()’)) { printf('<script type="application/ld+json">%s</script>', bcn_display_json_ld(true)); } }
Reaching Farther
The two examples that were just covered output the JSON-LD directly into the HTML document. This need not be the case. One could write a REST API endpoint and use it to return the JSON-LD data. However, doing this is a daunting task when working with Breadcrumb NavXT 5.x. This situation improves in Breadcrumb NavXT 6.0. Still, in 6.0, it requires directly accessing many methods within the bcn_breadcrumb_trail
class. That said, it should be possible to write an extension targeting Breadcrumb NavXT 6.0 that does this. In a future article, this idea will be explored in greater depth.
-John Havlik
[end of transmission, stay tuned]