| | |
| | | |
| | | function jvbIsDirectory():bool |
| | | { |
| | | return (is_post_type_archive(BASE.'directory') || is_singular(BASE.'directory')); |
| | | } |
| | | |
| | | function jvbDirectoryIds():array |
| | | { |
| | | return array_values(get_option(BASE.'directory_ids')); |
| | | } |
| | | |
| | | function jvbBuildDirectoryNavigation():string |
| | | { |
| | | $nav = get_option(BASE.'directory_nav'); |
| | | if ($nav === false) { |
| | | $IDs = jvbGlobalDirectoryInfo(); |
| | | $nav = '<nav class="directory-list alignwide" id="directory-list"><ul><li class="title">More Lists:</li>'; |
| | | foreach ($IDs as $ID) { |
| | | $bit = (array_key_exists('slug', $ID)) ? $ID['slug'] : $ID['title']; |
| | | $nav .= '<li id="directory-'.$bit.'"><a href="'.$ID['url'].'">[ '.$ID['title'].' ]</a></li>'; |
| | | } |
| | | $nav .= '</ul></nav>'; |
| | | update_option(BASE.'directory_nav', $nav); |
| | | } |
| | | $ID = get_the_ID(); |
| | | return str_replace('directory-'.$ID.'"', 'directory-'.$ID.'" class="current"', $nav); |
| | | } |
| | | |
| | | |
| | | function jvbDirectories($search = 'all'):array |
| | | { |
| | | $get = jvbGlobalDirectoryInfo(); |
| | | // jvbDump($get); |
| | | |
| | | if ($search == 'all') { |
| | | return $get; |
| | | } else { |
| | | return $get[$search]??[]; |
| | | } |
| | | } |
| | | |
| | | function jvbIndexedDirectories():array |
| | | { |
| | | |
| | | $out = get_transient(BASE.'indexed_directories'); |
| | | if (!$out) { |
| | | $get = jvbGlobalDirectoryInfo(); |
| | | $out = []; |
| | | foreach ($get as $g) { |
| | | $temp = $g; |
| | | unset($temp['ID']); |
| | | $out[$g['ID']] = $temp; |
| | | } |
| | | set_transient(BASE.'indexed_directories', $out, WEEK_IN_SECONDS); |
| | | } |
| | | return $out; |
| | | return JVB()->directories() && JVB()->directories()->isDirectory(); |
| | | } |