| | |
| | | if (JVB_TESTING) { |
| | | $this->cache->flush(); |
| | | } |
| | | $this->cache->flush(); |
| | | } |
| | | |
| | | public static function getInstance(): self |
| | |
| | | } |
| | | |
| | | |
| | | switch (true) { |
| | | |
| | | case is_singular(): |
| | | $key = get_queried_object_id(); |
| | | break; |
| | | case is_post_type_archive(): |
| | | $obj = get_queried_object(); |
| | | $key = $obj->name; |
| | | break; |
| | | case is_tax(): |
| | | $obj = get_queried_object(); |
| | | $key = $obj->taxonomy; |
| | | break; |
| | | case is_home(): |
| | | $obj = get_queried_object(); |
| | | $key = $obj->post_type; |
| | | break; |
| | | default: |
| | | $key = 'home'; |
| | | break; |
| | | } |
| | | $key = match(true) { |
| | | is_singular() => get_queried_object_id(), |
| | | is_tax() => get_queried_object()->taxonomy, |
| | | is_post_type_archive() => get_queried_object()->name, |
| | | default => 'home' |
| | | }; |
| | | |
| | | return $this->cache->remember( |
| | | $key, |
| | |
| | | ]; |
| | | |
| | | $obj = get_queried_object(); |
| | | if (is_null($obj)) { |
| | | return $crumbs; |
| | | } |
| | | if (is_tax()) { |
| | | $crumbs = $this->addTaxonomyCrumbs($crumbs, $obj); |
| | | } elseif (is_singular() || is_home()) { |
| | |
| | | |
| | | |
| | | // Add directory if exists |
| | | if ($registrar && $registrar->hasFeature('directory')) { |
| | | if ($registrar && $registrar->hasFeature('show_directory')) { |
| | | $directory = JVB()->directories(); |
| | | if ($directory && !empty($directory->directories($tax))) { |
| | | if ($directory && !empty($directory->directories($tax)??[])) { |
| | | $crumbs[] = [ |
| | | 'name' => $directory['title'], |
| | | 'url' => $directory['url'] |
| | | 'name' => $directory->directories($tax)['title'], |
| | | 'url' =>$directory->directories($tax)['url'] |
| | | ]; |
| | | } |
| | | } |
| | |
| | | $crumbConfig = $registrar->getConfig('breadcrumbs'); |
| | | } |
| | | |
| | | if($registrar && $registrar->hasFeature('show_directory')) { |
| | | $directory = JVB()->directories(); |
| | | if ($directory && !empty($directory->directories($content)??[])){ |
| | | $crumbs[] = [ |
| | | 'name' => $directory->directories($content)['title'], |
| | | 'url' =>$directory->directories($content)['url'] |
| | | ]; |
| | | } |
| | | } |
| | | |
| | | // Handle directory posts specially |
| | | if (JVB()->directories() && JVB()->directories()->isDirectory()) { |
| | | $pos = jvbGetDirectoryInfo(); |
| | |
| | | |
| | | $registrar = Registrar::getInstance($name); |
| | | |
| | | if($registrar && $registrar->hasFeature('show_directory')) { |
| | | if($registrar && $registrar->hasFeature('show_directory') && JVB()->directories()) { |
| | | $directory = JVB()->directories(); |
| | | |
| | | if ($directory && !empty($directory->directories($name)??[])){ |
| | | $crumbs[] = [ |
| | | 'name' => $directory->directories($name)['title'], |
| | |
| | | ]; |
| | | } |
| | | } elseif (Site::has('is_directory') && $name === 'directory') { |
| | | |
| | | $crumbs[] = [ |
| | | 'name' => JVB()->directories()->referAs(true), |
| | | 'url' => get_post_type_archive_link($type) |