Jake Vanderwerf
2026-08-30 87237f15618e2320967b9380c360b89f7323d2e9
inc/managers/SEO/BreadcrumbManager.php
@@ -25,6 +25,8 @@
   private Cache $postCache;
   private Cache $userCache;
   private static ?self $instance = null;
   private static bool $hasDirectory;
   private static array $directories;
   private function __construct()
   {
@@ -32,6 +34,8 @@
      $this->termCache = Cache::for('breadcrumbs_tax', 'term');
      $this->postCache = Cache::for('breadcrumbs_post', 'post');
      $this->userCache = Cache::for('breadcrumbs_user', 'user');
      self::$hasDirectory = Site::has('is_directory');
      self::$directories = self::$hasDirectory ? DirectoryManager::getInstance()->directories() : [];
   }
   public static function getInstance(): self
@@ -120,12 +124,11 @@
            $content = is_array($registrar->registrar->for) ? $registrar->registrar->for[0] : $registrar->registrar->for;
            $contentRegistrar = Registrar::getInstance($content);
            if(Site::has('is_directory') && $contentRegistrar && $contentRegistrar->hasFeature('show_directory')) {
               $directory = DirectoryManager::getInstance();
               if (!empty($directory->directories($content)??[])){
            if(self::$hasDirectory && $contentRegistrar && $contentRegistrar->hasFeature('show_directory')) {
               if (!empty(self::$directories[$content]??[])){
                  $crumbs[] = [
                     'name'   => $directory->directories($content)['title'],
                     'url' =>$directory->directories($content)['url']
                     'name'   => self::$directories[$content]['title'],
                     'url' => self::$directories[$content]['url']
                  ];
               }
            } else {
@@ -143,12 +146,12 @@
      // Add directory if exists
      if ($registrar && $registrar->hasFeature('show_directory')) {
         $directory = DirectoryManager::getInstance();
         if ($directory && !empty($directory->directories($tax)??[])) {
      if (self::$hasDirectory && $registrar && $registrar->hasFeature('show_directory')) {
         if (!empty(self::$directories[$tax]??[])) {
            $crumbs[] = [
               'name'   => $directory->directories($tax)['title'],
               'url' =>$directory->directories($tax)['url']
               'name'   => self::$directories[$tax]['title'],
               'url' => self::$directories[$tax]['url']
            ];
         }
      }
@@ -171,14 +174,14 @@
      }
      // Handle directory posts specially
      if (Site::has('is_directory') && DirectoryManager::getInstance()->isDirectory()) {
      if (self::$hasDirectory && DirectoryManager::getInstance()->isDirectory()) {
         $pos = jvbGetDirectoryInfo();
         if (!empty($pos)) {
            // Special case for map
            if ($pos['title'] == 'Map') {
               $crumbs[] = [
                  'name' => 'Tattoo Shops',
                  'url'  => DirectoryManager::getInstance()->directories(BASE.'shop')['url']
                  'url'  => DirectoryManager::getInstance()->directories(BASE.'shop')['url']??''
               ];
            }
@@ -212,13 +215,12 @@
      $registrar = Registrar::getInstance($name);
      if($registrar && $registrar->hasFeature('show_directory') && DirectoryManager::getInstance()) {
         $directory = DirectoryManager::getInstance();
      if(self::$hasDirectory && $registrar && $registrar->hasFeature('show_directory')) {
         if ($directory && !empty($directory->directories($name)??[])){
         if (!empty(self::$directories[$name]??[])){
            $crumbs[] = [
               'name'   => $directory->directories($name)['title'],
               'url' =>$directory->directories($name)['url']
               'name'   => self::$directories[$name]['title'],
               'url' => self::$directories[$name]['url']
            ];
         }
      } elseif (Site::has('is_directory') && $name === 'directory') {