diff --git a/functions.php b/functions.php
index 99ab825..a3a5526 100644
--- a/functions.php
+++ b/functions.php
@@ -31,3 +31,234 @@ function my_widgets_init() {
) );
}
+
+// Breadcrumbs
+function custom_breadcrumbs() {
+
+ // Settings
+ $separator = '>';
+ $breadcrums_id = 'breadcrumbs';
+ $breadcrums_class = 'breadcrumbs';
+ $home_title = 'Homepage';
+
+ // If you have any custom post types with custom taxonomies, put the taxonomy name below (e.g. product_cat)
+ $custom_taxonomy = 'product_cat';
+
+ // Get the query & post information
+ global $post,$wp_query;
+
+ // Do not display on the homepage
+ if ( !is_front_page() ) {
+
+ // Build the breadcrums
+ echo '
';
+
+ // Home page
+ echo '- ' . $home_title . '
';
+ echo '- ' . $separator . '
';
+
+ if ( is_archive() && !is_tax() && !is_category() && !is_tag() ) {
+
+ echo '- ' . post_type_archive_title('', false) . '
';
+
+ } else if ( is_archive() && is_tax() && !is_category() && !is_tag() ) {
+
+ // If post is a custom post type
+ $post_type = get_post_type();
+
+ // If it is a custom post type display name and link
+ if($post_type != 'post') {
+
+ $post_type_object = get_post_type_object($post_type);
+ $post_type_archive = get_post_type_archive_link($post_type);
+
+ echo '- ' . $post_type_object->labels->name . '
';
+ echo '- ' . $separator . '
';
+
+ }
+
+ $custom_tax_name = get_queried_object()->name;
+ echo '- ' . $custom_tax_name . '
';
+
+ } else if ( is_single() ) {
+
+ // If post is a custom post type
+ $post_type = get_post_type();
+
+ // If it is a custom post type display name and link
+ if($post_type != 'post') {
+
+ $post_type_object = get_post_type_object($post_type);
+ $post_type_archive = get_post_type_archive_link($post_type);
+
+ echo '- ' . $post_type_object->labels->name . '
';
+ echo '- ' . $separator . '
';
+
+ }
+
+ // Get post category info
+ $category = get_the_category();
+
+ if(!empty($category)) {
+
+ // Get last category post is in
+ $last_category = end(array_values($category));
+
+ // Get parent any categories and create array
+ $get_cat_parents = rtrim(get_category_parents($last_category->term_id, true, ','),',');
+ $cat_parents = explode(',',$get_cat_parents);
+
+ // Loop through parent categories and store in variable $cat_display
+ $cat_display = '';
+ foreach($cat_parents as $parents) {
+ $cat_display .= '- '.$parents.'
';
+ $cat_display .= '- ' . $separator . '
';
+ }
+
+ }
+
+ // If it's a custom post type within a custom taxonomy
+ $taxonomy_exists = taxonomy_exists($custom_taxonomy);
+ if(empty($last_category) && !empty($custom_taxonomy) && $taxonomy_exists) {
+
+ $taxonomy_terms = get_the_terms( $post->ID, $custom_taxonomy );
+ $cat_id = $taxonomy_terms[0]->term_id;
+ $cat_nicename = $taxonomy_terms[0]->slug;
+ $cat_link = get_term_link($taxonomy_terms[0]->term_id, $custom_taxonomy);
+ $cat_name = $taxonomy_terms[0]->name;
+
+ }
+
+ // Check if the post is in a category
+ if(!empty($last_category)) {
+ echo $cat_display;
+ echo '- ' . get_the_title() . '
';
+
+ // Else if post is in a custom taxonomy
+ } else if(!empty($cat_id)) {
+
+ echo '- ' . $cat_name . '
';
+ echo '- ' . $separator . '
';
+ echo '- ' . get_the_title() . '
';
+
+ } else {
+
+ echo '- ' . get_the_title() . '
';
+
+ }
+
+ } else if ( is_category() ) {
+
+ // Category page
+ echo '- ' . single_cat_title('', false) . '
';
+
+ } else if ( is_page() ) {
+
+ // Standard page
+ if( $post->post_parent ){
+
+ // If child page, get parents
+ $anc = get_post_ancestors( $post->ID );
+
+ // Get parents in the right order
+ $anc = array_reverse($anc);
+
+ // Parent page loop
+ if ( !isset( $parents ) ) $parents = null;
+ foreach ( $anc as $ancestor ) {
+ $parents .= '- ' . get_the_title($ancestor) . '
';
+ $parents .= '- ' . $separator . '
';
+ }
+
+ // Display parent pages
+ echo $parents;
+
+ // Current page
+ echo '- ' . get_the_title() . '
';
+
+ } else {
+
+ // Just display current page if not parents
+ echo '- ' . get_the_title() . '
';
+
+ }
+
+ } else if ( is_tag() ) {
+
+ // Tag page
+
+ // Get tag information
+ $term_id = get_query_var('tag_id');
+ $taxonomy = 'post_tag';
+ $args = 'include=' . $term_id;
+ $terms = get_terms( $taxonomy, $args );
+ $get_term_id = $terms[0]->term_id;
+ $get_term_slug = $terms[0]->slug;
+ $get_term_name = $terms[0]->name;
+
+ // Display the tag name
+ echo '- ' . $get_term_name . '
';
+
+ } elseif ( is_day() ) {
+
+ // Day archive
+
+ // Year link
+ echo '- ' . get_the_time('Y') . ' Archives
';
+ echo '- ' . $separator . '
';
+
+ // Month link
+ echo '- ' . get_the_time('M') . ' Archives
';
+ echo '- ' . $separator . '
';
+
+ // Day display
+ echo '- ' . get_the_time('jS') . ' ' . get_the_time('M') . ' Archives
';
+
+ } else if ( is_month() ) {
+
+ // Month Archive
+
+ // Year link
+ echo '- ' . get_the_time('Y') . ' Archives
';
+ echo '- ' . $separator . '
';
+
+ // Month display
+ echo '- ' . get_the_time('M') . ' Archives
';
+
+ } else if ( is_year() ) {
+
+ // Display year archive
+ echo '- ' . get_the_time('Y') . ' Archives
';
+
+ } else if ( is_author() ) {
+
+ // Auhor archive
+
+ // Get the author information
+ global $author;
+ $userdata = get_userdata( $author );
+
+ // Display author name
+ echo '- ' . 'Author: ' . $userdata->display_name . '
';
+
+ } else if ( get_query_var('paged') ) {
+
+ // Paginated archives
+ echo '- '.__('Page') . ' ' . get_query_var('paged') . '
';
+
+ } else if ( is_search() ) {
+
+ // Search results page
+ echo '- Search results for: ' . get_search_query() . '
';
+
+ } elseif ( is_404() ) {
+
+ // 404 page
+ echo '- ' . 'Error 404' . '
';
+ }
+
+ echo '
';
+
+ }
+
+}
\ No newline at end of file
diff --git a/index.php b/index.php
new file mode 100644
index 0000000..e69de29