Jake Vanderwerf
2025-11-23 d7dbe7fee362d587dfc334135d9581b6216a4295
inc/helpers/breadcrumbs.php
@@ -1,5 +1,8 @@
<?php
use JVBase\managers\CacheManager;
use JVBase\utility\Features;
if (!defined('ABSPATH')) {
   exit;
}
@@ -10,7 +13,7 @@
 */
function jvbGetCrumbs():array
{
    $cache = new JVBase\managers\CacheManager('breadcrumbs', MONTH_IN_SECONDS);
    $cache = CacheManager::for('breadcrumbs', MONTH_IN_SECONDS)->connectTo('all');
    $key = get_queried_object_id();
    $crumbs = $cache->get($key);
   $crumbs = false;
@@ -21,7 +24,7 @@
    $crumbs = [];
    $crumbs[] = [
        'name'  => 'Home',
        'icon'  => jvbIcon('home'),
        'icon'  => jvbIcon('house'),
        'url'   => get_home_url(),
    ];
@@ -29,19 +32,27 @@
    //taxonomies extra
    if (is_tax()) {
        switch ($obj->taxonomy) {
            case BASE.'type':
                $type = 'artist';
                break;
            default:
                $type = jvbNoBase($obj->taxonomy);
                break;
        }
        $directory = jvbDirectories($type);
        $crumbs[] = [
            'name'  => $directory['title'],
            'url'   => $directory['url']
        ];
      $tax = jvbNoBase($obj->taxonomy);
      $config = Features::getConfig($tax, 'term');
      if (count($config['for_content']) === 1) {
         $contentConfig = JVB_CONTENT[$config['for_content'][0]];
         $crumbs[] = [
            'name'   => $contentConfig['breadcrumb']??$contentConfig['plural'],
            'url' => get_post_type_archive_link(jvbCheckBase($config['for_content'][0])),
         ];
         $crumbs[] = [
            'name'   => 'By '.$config['singular'],
            'url' => false,
         ];
      }
      if (Features::forTaxonomy($tax)->has('directory')){
         $directory = jvbDirectories($tax);
         $crumbs[] = [
            'name'  => $directory['title'],
            'url'   => $directory['url']
         ];
      }
        $crumbs = array_merge($crumbs, jvbGetBreadcrumbTermHierarchy($obj));
    }