public function title_fixer($title, $sep, $seplocation) { if (($post_type = is_custom_post()) && $post_type->name == $this->post_type) { $title = $post_type->label; $t_sep = '%WP_TITILE_SEP%'; // Temporary separator, for accurate flipping, if necessary $prefix = ''; if (!empty($title)) { $prefix = " {$sep} "; } // Determines position of the separator and direction of the breadcrumb if ('right' == $seplocation) { // sep on right, so reverse the order $title_array = explode($t_sep, $title); $title_array = array_reverse($title_array); $title = implode(" {$sep} ", $title_array) . $prefix; } else { $title_array = explode($t_sep, $title); $title = $prefix . implode(" {$sep} ", $title_array); } } return $title; }
function theme_breadcrumbs() { $delimiter = '»'; $name = __('Home', TEMPLATENAME); $currentBefore = '<span class="current">'; $currentAfter = '</span>'; if (!is_home() && !is_front_page() || is_paged()) { echo '<div id="breadcrumbs">'; global $post; $home = home_url(); echo '<a href="' . $home . '">' . $name . '</a> ' . $delimiter . ' '; if (is_category()) { global $wp_query; $cat_obj = $wp_query->get_queried_object(); $thisCat = $cat_obj->term_id; $thisCat = get_category($thisCat); $parentCat = get_category($thisCat->parent); if ($thisCat->parent != 0) { echo get_category_parents($parentCat, TRUE, ' ' . $delimiter . ' '); } echo $currentBefore . __('Archive by category:', TEMPLATENAME) . ' ''; single_cat_title(); echo ''' . $currentAfter; } elseif (is_day()) { echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' '; echo '<a href="' . get_month_link(get_the_time('Y'), get_the_time('m')) . '">' . get_the_time('F') . '</a> ' . $delimiter . ' '; echo $currentBefore . get_the_time('d') . $currentAfter; } elseif (is_month()) { echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' '; echo $currentBefore . get_the_time('F') . $currentAfter; } elseif (is_year()) { echo $currentBefore . get_the_time('Y') . $currentAfter; } elseif (is_tax()) { $term = get_term_by('slug', get_query_var('term'), get_query_var('taxonomy')); if ($term->parent != 0) { $parent =& get_term((int) $term->parent, $term->taxonomy); echo get_term_parents($parent, ' ' . $delimiter . ' '); } echo $currentBefore . __('Posts classified under:', TEMPLATENAME) . ' ''; echo $term->name; echo ''' . $currentAfter; } elseif ($post_type = is_custom_post()) { if (is_single()) { echo '<a href="' . home_url($post_type->rewrite['slug']) . '">' . $post_type->label . '</a>' . $delimiter . ' '; $tax_names = get_post_taxonomies($post->ID); foreach ($tax_names as $tax_name) { $tax = get_taxonomy($tax_name); if ($tax->hierarchical) { break; } } $cat = get_the_terms(null, $tax_name); $cat = reset($cat); echo get_term_parents($cat, ' ' . $delimiter . ' '); echo $currentBefore; the_title(); echo $currentAfter; } else { echo $currentBefore; echo $post_type->label; echo $currentAfter; } } elseif (is_single() && !is_attachment()) { $cat = get_the_category(); $cat = $cat[0]; echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' '); echo $currentBefore; the_title(); echo $currentAfter; } elseif (is_attachment()) { $parent = get_post($post->post_parent); $cat = get_the_category($parent->ID); $cat = $cat[0]; echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' '); echo '<a href="' . get_permalink($parent) . '">' . $parent->post_title . '</a> ' . $delimiter . ' '; echo $currentBefore; the_title(); echo $currentAfter; } elseif (is_page() && !$post->post_parent) { echo $currentBefore; the_title(); echo $currentAfter; } elseif (is_page() && $post->post_parent) { $parent_id = $post->post_parent; $breadcrumbs = array(); while ($parent_id) { $page = get_page($parent_id); $breadcrumbs[] = '<a href="' . get_permalink($page->ID) . '">' . get_the_title($page->ID) . '</a>'; $parent_id = $page->post_parent; } $breadcrumbs = array_reverse($breadcrumbs); foreach ($breadcrumbs as $crumb) { echo $crumb . ' ' . $delimiter . ' '; } echo $currentBefore; the_title(); echo $currentAfter; } elseif (is_search()) { echo $currentBefore . __('Search results for:', TEMPLATENAME) . ' '' . get_search_query() . ' '' . $currentAfter; } elseif (is_tag()) { echo $currentBefore . __('Posts tagged:', TEMPLATENAME) . ' ''; single_tag_title(); echo ''' . $currentAfter; } elseif (is_author()) { global $author; $userdata = get_userdata($author); echo $currentBefore . __('Articles posted by:', TEMPLATENAME) . ' ' . $userdata->display_name . $currentAfter; } elseif (is_404()) { echo $currentBefore . __('Error 404', TEMPLATENAME) . $currentAfter; } if (get_query_var('paged')) { if (is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author()) { echo ' ('; } echo __('Page') . ' ' . get_query_var('paged'); if (is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author()) { echo ')'; } } echo '</div>'; } }