'; foreach ($list as $text => $item) { $html .= '
  • '; // List of categories with links if (is_array($item)) { $html .= implode(', ', $item); } else { // Item without a link if (is_null($item)) { $html .= $text; } else { $html .= '' . $text . ''; } } $html .= '
  • '; } $html .= ''; return $html; } /** * Generates an array for breadcrumb trails * * @return array Items of the breadcrumb, in the form title => url|null */ static protected function generateBreadcrumbList() { // Recursive category path function $category_path = function($category) use (&$category_path) { $category_obj = get_category($category); $parent = $category_obj->category_parent; if (! $parent) { return [get_the_category_by_ID($category) => get_category_link($category)]; } return array_merge($category_path($parent), [get_the_category_by_ID($category) => get_category_link($category)]); }; // Init $list = []; // Website index //$list[__('Home', 'ltk-foundation')] = home_url(); $list[''] = home_url(); // Posts page, if configured $settings = wp_load_alloptions(); $page_for_posts = get_option('page_for_posts'); if ($settings['show_on_front'] == 'page' && $page_for_posts && ! is_page()) { $list[get_the_title($settings['page_for_posts'])] = get_page_link($settings['page_for_posts']); } // Search page & search term if (is_search()) { $list[__('Search', 'ltk-foundation')] = null; $search = get_search_query(); if (! empty($search)) { $list[$search] = null; } return $list; } // Error 404 if (is_404()) { $list[__('Error 404', 'ltk-foundation')] = null; return $list; } // Author page if (is_author()) { $author = get_the_author(); $list[$author] = home_url() . '/author/' . $author; return $list; } // Tag page if (is_tag()) { $tag = get_term_by('name', single_tag_title('', false), 'post_tag'); $list[single_tag_title('', false)] = get_tag_link($tag->term_id); return $list; } // Category if (is_category()) { return array_merge($list, $category_path(get_query_var('cat'))); } // Page if (is_page()) { $list[get_the_title()] = null; return $list; } // Single post if (is_single()) { $post_categories = get_the_category(); // Single category = recursive search for parents if (count($post_categories) == 1) { $the_category = array_shift($post_categories); $list = array_merge($list, $category_path($the_category->cat_ID)); } else { $_list = []; foreach ($post_categories as $category) { $_list[] = '' . $category->cat_name . ''; } $list[] = $_list; } $list[get_the_title(get_the_id())] = null; return $list; } // Archive page if (is_archive()) { $year = get_query_var('year'); if ($year) { $list[$year] = get_year_link($year); $month = get_query_var('monthnum'); if ($month) { $list[ucwords(date_i18n('F', strtotime("$year-$month-01")))] = get_month_link($year, $month); $day = get_query_var('day'); if ($day) { $list[date_i18n('d', strtotime("$year-$month-$day"))] = get_day_link($year, $monthnum, $day); } } } return $list; } } }