进入自己做网站的后台,找到主题下面的编辑按钮;
将以下的代码复制到模板函数functions.php里;
调用
将以下的代码复制到模板函数functions.php里;
function the_crumbs( $before = '<li class="breadcrumb-item">', $delimiter = '</li><li class="breadcrumb-item">', $after = '</li>', $end_delimiter = '</li><li class="breadcrumb-item active" aria-current="page">' ) { // $delimiter = '<span class="mx-1">/</span>'; // 分隔符 // $before = ''; // 在 当前页 前 插入 // $after = ''; // 在 当前页 后 插入 if ( !is_home() && !is_front_page() || is_paged() ) { echo $before; global $post; $homeLink = home_url(); echo ' <a title="返回首页" href="' . $homeLink . '">首页</a>'; if ( is_single() && !is_page() && !is_attachment() && get_post_type() != 'post' ) { // 自定义文章类型 echo $delimiter; $post_type = get_post_type_object( get_post_type() ); $slug = $post_type->rewrite; echo '<a href="' . $homeLink . '/' . $slug[ 'slug' ] . '/">' . $post_type->labels->singular_name . '</a> '; //自定义文本存档 总归档 写法 2 $list = ''; foreach ( get_the_taxonomies() as $taxonomy_name => $taxonomy ) { /*echo $taxonomy_name;*/ if ( $taxonomy_name != 'post_tag' ) { $terms = get_the_terms( $post->ID, $taxonomy_name ); $term = $terms[ 0 ]; $parentTerm = get_term( $term->parent, $taxonomy_name ); if ( $term->parent != 0 ) { $parentTerm_name = $parentTerm->name; $parentTerm_link = get_term_link( $parentTerm->term_id, $taxonomy_name ); $list .= $delimiter .'<a href="' . esc_url( $parentTerm_link ) . '">' . $parentTerm_name . '</a> ' ; } $list .= $delimiter . '<a href="' . esc_url( get_term_link( $term->term_id, $taxonomy_name ) ) . '">' . $term->name . '</a> ' . $delimiter; } /* print_r ($term);*/ } $list = substr( $list, 0, -strlen( $delimiter ) ); //移除最后一个 $delimiter echo $list; echo $end_delimiter . get_the_title(); } elseif ( is_single() && get_post_type() == 'post' ) { // 文章 echo $delimiter; if ( get_option( 'page_for_posts' ) ) {//设置了文章页 echo ' <a href="' . get_post_type_archive_link( 'post' ) . '">' . get_post_type_object( 'post' )->labels->singular_name . '</a>' . $delimiter; } $cat = get_the_category()[ 0 ]; $cat_code = get_category_parents( $cat, TRUE, $delimiter ); $cat_code = substr( $cat_code, 0, -strlen( $delimiter ) ); //移除最后一个 $delimiter echo $cat_code; echo $end_delimiter . get_the_title(); } elseif ( is_attachment() ) { // 附件 echo $delimiter; $parent = get_post( $post->post_parent ); $cat = get_the_category( $parent->ID )[ 0 ]; $cat_code = get_category_parents( $cat, TRUE, $delimiter ); $cat_code = substr( $cat_code, 0, -strlen( $delimiter ) ); //移除最后一个 $delimiter echo $cat_code . $delimiter; echo '<a href="' . get_permalink( $parent ) . '">' . $parent->post_title . '</a> '; echo $end_delimiter . '附件 - ' . get_the_title(); } elseif ( is_page() ) { // 页面 $parents = get_post_ancestors( $post->ID ); $parents = array_reverse( $parents ); //以相反的顺序返回数组 if ( $post->post_parent ) { // 页面有父级 echo $delimiter; $list = ''; foreach ( $parents as $crumb ) { $list .= '<a href="' . get_permalink( $crumb ) . '">' . get_the_title( $crumb ) . '</a>' . $delimiter; } $list = substr( $list, 0, -strlen( $delimiter ) ); //移除最后一个 $delimiter echo $list; } echo $end_delimiter . get_the_title(); } elseif ( is_post_type_archive() ) { // 自定义文章类型 存档 echo $end_delimiter; $post_type = get_query_var( 'post_type' ); if ( is_array( $post_type ) ) { $post_type = reset( $post_type ); } $post_type_object = get_post_type_object( $post_type ); if ( !$post_type_object->has_archive ) { echo post_type_archive_title( '', false ); } elseif ( $post_type_object->has_archive ) { echo post_type_archive_title( '', false ); } } elseif ( is_category() ) { // 分类 存档 if ( get_option( 'page_for_posts' ) ) {//设置了文章页 echo $delimiter.' <a href="' . get_post_type_archive_link( 'post' ) . '">' . get_post_type_object( 'post' )->labels->singular_name . '</a>' ; } 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 $delimiter; $cat_code = get_category_parents( $parentCat, TRUE, $delimiter ); $cat_code = substr( $cat_code, 0, -strlen( $delimiter ) ); //移除最后一个 $delimiter echo $cat_code; } echo $end_delimiter . single_cat_title( '', false ); } elseif ( is_tag() ) { //标签 存档 echo $end_delimiter; printf( '关于 %s 的所有文章', single_tag_title( '', false ) ); } elseif ( is_tax() ) { // 自定义分类 存档 echo $delimiter; echo ' <a href="' . get_post_type_archive_link( get_post_type() ) . '">' . get_post_type_object( get_post_type() )->labels->singular_name . '</a>'; //自定义文本存档 总归档 写法 1 global $wp_query; $tax_obj = $wp_query->get_queried_object(); $thisTax = $tax_obj->term_id; $thisTaxonomy = $tax_obj->taxonomy; $thisTax = get_term( $thisTax, $thisTaxonomy ); $parentTax = get_term( $thisTax->parent, $thisTaxonomy ); if ( $thisTax->parent != 0 ) { echo $delimiter; $tax_code = get_term_parents_list( $parentTax, $thisTaxonomy, array( 'separator' => $delimiter ) ); $tax_code = substr( $tax_code, 0, -strlen( $delimiter ) ); //移除最后一个 $delimiter echo $tax_code; } echo $end_delimiter . single_term_title( '', false ); } elseif ( is_author() && !is_post_type_archive() ) { // 作者存档 global $author; $userdata = get_userdata( $author ); echo $end_delimiter; printf( '来自 “%s” 的所有文章', $userdata->display_name ); } elseif ( is_day() ) { // 天 存档 echo $delimiter; 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> '; echo $end_delimiter . get_the_time( 'd' ); } elseif ( is_month() ) { // 月 存档 echo $delimiter; echo '<a href="' . get_year_link( get_the_time( 'Y' ) ) . '">' . get_the_time( 'Y' ) . '</a> '; echo $end_delimiter . get_the_time( 'F' ); } elseif ( is_year() ) { // 年 存档 echo $end_delimiter . get_the_time( 'Y' ); } elseif ( is_search() ) { // 搜索结果 echo $end_delimiter; printf( '您是在搜索 %s 吗?', get_search_query() ); } elseif ( is_404() ) { // 404 页面 echo $end_delimiter . '亲,你迷路了!'; } elseif ( !is_single() && !is_page() && get_post_type() != 'post' ) { $post_type = get_post_type_object( get_post_type() ); echo $end_delimiter . $post_type->labels->singular_name; } // 分页 if ( ( get_query_var( 'paged' ) ) && ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) ) { printf( ' - 第 %s 页', get_query_var( 'paged' ) ); } echo $after; } } |
调用
<nav aria-label="breadcrumb"> <ol class="breadcrumb text-truncate"> <?php the_crumbs('<li class="breadcrumb-item">', '</li><li class="breadcrumb-item">', '</li>', '</li><li class="breadcrumb-item active" aria-current="page">'); ?> </ol> </nav> |
转载请注明:Wordpress» Wordpress当前位置调用
标签: