Home> CMS Tutorial> WordPress> body text

Share a WordPress breadcrumb navigation code

藏色散人
Release: 2021-05-06 10:13:33
forward
2839 people have browsed it

The following is a WordPress breadcrumb navigation code shared by theWordPresstutorial column. I hope it will be helpful to friends who need it!

Reprint and share a piece of WordPress breadcrumb navigation code that supports custom post types and custom categories, but it seems a pity that the parent-child category hierarchy cannot be displayed on the category archive page.

Add the code to the current theme function template functions.php:

/** * WordPress Breadcrumbs */ function tsh_wp_custom_breadcrumbs() { $separator = '/'; $breadcrumbs_id = 'tsh_breadcrumbs'; $breadcrumbs_class = 'tsh_breadcrumbs'; $home_title = esc_html__('Home', 'your-domain'); // Add here you custom post taxonomies $tsh_custom_taxonomy = 'product_cat'; global $post,$wp_query; // Hide from front page if ( !is_front_page() ) { echo '
    '; // Home 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() ) { // For Custom post type $post_type = get_post_type(); // Custom post type 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() ) { $post_type = get_post_type(); 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 $category = get_the_category(); if(!empty($category)) { // Last category post is in $last_category = $category[count($category) - 1]; // 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 . '
  • '; } } $taxonomy_exists = taxonomy_exists($tsh_custom_taxonomy); if(empty($last_category) && !empty($tsh_custom_taxonomy) && $taxonomy_exists) { $taxonomy_terms = get_the_terms( $post->ID, $tsh_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, $tsh_custom_taxonomy); $cat_name = $taxonomy_terms[0]->name; } // If the post is in a category if(!empty($last_category)) { echo $cat_display; echo '
  • ' . get_the_title() . '
  • '; // 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 ){ // Get parents $anc = get_post_ancestors( $post->ID ); // Get parents order $anc = array_reverse($anc); // Parent pages if ( !isset( $parents ) ) $parents = null; foreach ( $anc as $ancestor ) { $parents .= '
  • ' . get_the_title($ancestor) . '
  • '; $parents .= '
  • ' . $separator . '
  • '; } // Render parent pages echo $parents; // Active page echo '
  • ' . get_the_title() . '
  • '; } else { // Just display active page if not parents pages echo '
  • ' . get_the_title() . '
  • '; } } else if ( is_tag() ) { // Tag page // 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; // Return tag name echo '
  • ' . $get_term_name . '
  • '; } elseif ( is_day() ) { // Day archive page // 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() ) { // Author 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 '
'; } }
Copy after login

Put the calling code in the appropriate location of the theme template, such as header.php:

Copy after login

Matching style :

#tsh_breadcrumbs .separator{ font-size:20px; color:#ccc; font-weight:100; } #tsh_breadcrumbs{ overflow:hidden; text-align: center; list-style:none; margin:11px 0; } #tsh_breadcrumbs li{ margin-right:14px; display:inline-block; vertical-align:middle; }
Copy after login

The above is the detailed content of Share a WordPress breadcrumb navigation code. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:zmingcx.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!