下面由wordpress教程栏目给大家分享一个wordpress面包屑导航代码,希望对需要的朋友有所帮助!
转载分享一段WordPress面包屑导航代码,支持自定义帖子类型、自定义分类,但貌似在分类归档页面不能显示父子分类层级有点遗憾。
将代码添加到当前主题函数模板functions.php中:
functiontsh_wp_custom_breadcrumbs(){$separator='/';$breadcrumbs_id='tsh_breadcrumbs';$breadcrumbs_class='tsh_breadcrumbs';$home_title=esc_html__('Home','your-domain');//Addhereyoucustomposttaxonomies$tsh_custom_taxonomy='product_cat';global$post,$wp_query;//Hidefromfrontpageif(!is_front_page()){echo'<ulid="'.$breadcrumbs_id.'"class="'.$breadcrumbs_class.'">';//Homeecho'<liclass="item-home"><aclass="bread-linkbread-home"href="'.get_home_url().'"title="'.$home_title.'">'.$home_title.'</a></li>';echo'<liclass="separatorseparator-home">'.$separator.'</li>';if(is_archive()&&!is_tax()&&!is_category()&&!is_tag()){echo'<liclass="item-currentitem-archive"><strongclass="bread-currentbread-archive">'.post_type_archive_title('',false).'</strong></li>';}elseif(is_archive()&&is_tax()&&!is_category()&&!is_tag()){//ForCustomposttype$post_type=get_post_type();//Customposttypenameandlinkif($post_type!='post'){$post_type_object=get_post_type_object($post_type);$post_type_archive=get_post_type_archive_link($post_type);echo'<liclass="item-catitem-custom-post-type-'.$post_type.'"><aclass="bread-catbread-custom-post-type-'.$post_type.'"href="'.$post_type_archive.'"title="'.$post_type_object->labels->name.'">'.$post_type_object->labels->name.'</a></li>';echo'<liclass="separator">'.$separator.'</li>';}$custom_tax_name=get_queried_object()->name;echo'<liclass="item-currentitem-archive"><strongclass="bread-currentbread-archive">'.$custom_tax_name.'</strong></li>';}elseif(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'<liclass="item-catitem-custom-post-type-'.$post_type.'"><aclass="bread-catbread-custom-post-type-'.$post_type.'"href="'.$post_type_archive.'"title="'.$post_type_object->labels->name.'">'.$post_type_object->labels->name.'</a></li>';echo'<liclass="separator">'.$separator.'</li>';}//Getpostcategory$category=get_the_category();if(!empty($category)){//Lastcategorypostisin$last_category=$category[count($category)-1];//Parentanycategoriesandcreatearray$get_cat_parents=rtrim(get_category_parents($last_category->term_id,true,','),',');$cat_parents=explode(',',$get_cat_parents);//Loopthroughparentcategoriesandstoreinvariable$cat_display$cat_display='';foreach($cat_parentsas$parents){$cat_display.='<liclass="item-cat">'.$parents.'</li>';$cat_display.='<liclass="separator">'.$separator.'</li>';}}$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;}//Ifthepostisinacategoryif(!empty($last_category)){echo$cat_display;echo'<liclass="item-currentitem-'.$post->ID.'"><strongclass="bread-currentbread-'.$post->ID.'"title="'.get_the_title().'">'.get_the_title().'</strong></li>';//Postisinacustomtaxonomy}elseif(!empty($cat_id)){echo'<liclass="item-catitem-cat-'.$cat_id.'item-cat-'.$cat_nicename.'"><aclass="bread-catbread-cat-'.$cat_id.'bread-cat-'.$cat_nicename.'"href="'.$cat_link.'"title="'.$cat_name.'">'.$cat_name.'</a></li>';echo'<liclass="separator">'.$separator.'</li>';echo'<liclass="item-currentitem-'.$post->ID.'"><strongclass="bread-currentbread-'.$post->ID.'"title="'.get_the_title().'">'.get_the_title().'</strong></li>';}else{echo'<liclass="item-currentitem-'.$post->ID.'"><strongclass="bread-currentbread-'.$post->ID.'"title="'.get_the_title().'">'.get_the_title().'</strong></li>';}}elseif(is_category()){//Categorypageecho'<liclass="item-currentitem-cat"><strongclass="bread-currentbread-cat">'.single_cat_title('',false).'</strong></li>';}elseif(is_page()){//Standardpageif($post->post_parent){//Getparents$anc=get_post_ancestors($post->ID);//Getparentsorder$anc=array_reverse($anc);//Parentpagesif(!isset($parents))$parents=null;foreach($ancas$ancestor){$parents.='<liclass="item-parentitem-parent-'.$ancestor.'"><aclass="bread-parentbread-parent-'.$ancestor.'"href="'.get_permalink($ancestor).'"title="'.get_the_title($ancestor).'">'.get_the_title($ancestor).'</a></li>';$parents.='<liclass="separatorseparator-'.$ancestor.'">'.$separator.'</li>';}//Renderparentpagesecho$parents;//Activepageecho'<liclass="item-currentitem-'.$post->ID.'"><strongtitle="'.get_the_title().'">'.get_the_title().'</strong></li>';}else{//Justdisplayactivepageifnotparentspagesecho'<liclass="item-currentitem-'.$post->ID.'"><strongclass="bread-currentbread-'.$post->ID.'">'.get_the_title().'</strong></li>';}}elseif(is_tag()){//Tagpage//Taginformation$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;//Returntagnameecho'<liclass="item-currentitem-tag-'.$get_term_id.'item-tag-'.$get_term_slug.'"><strongclass="bread-currentbread-tag-'.$get_term_id.'bread-tag-'.$get_term_slug.'">'.$get_term_name.'</strong></li>';}elseif(is_day()){//Dayarchivepage//Yearlinkecho'<liclass="item-yearitem-year-'.get_the_time('Y').'"><aclass="bread-yearbread-year-'.get_the_time('Y').'"href="'.get_year_link(get_the_time('Y')).'"title="'.get_the_time('Y').'">'.get_the_time('Y').'Archives</a></li>';echo'<liclass="separatorseparator-'.get_the_time('Y').'">'.$separator.'</li>';//Monthlinkecho'<liclass="item-monthitem-month-'.get_the_time('m').'"><aclass="bread-monthbread-month-'.get_the_time('m').'"href="'.get_month_link(get_the_time('Y'),get_the_time('m')).'"title="'.get_the_time('M').'">'.get_the_time('M').'Archives</a></li>';echo'<liclass="separatorseparator-'.get_the_time('m').'">'.$separator.'</li>';//Daydisplayecho'<liclass="item-currentitem-'.get_the_time('j').'"><strongclass="bread-currentbread-'.get_the_time('j').'">'.get_the_time('jS').''.get_the_time('M').'Archives</strong></li>';}elseif(is_month()){//MonthArchive//Yearlinkecho'<liclass="item-yearitem-year-'.get_the_time('Y').'"><aclass="bread-yearbread-year-'.get_the_time('Y').'"href="'.get_year_link(get_the_time('Y')).'"title="'.get_the_time('Y').'">'.get_the_time('Y').'Archives</a></li>';echo'<liclass="separatorseparator-'.get_the_time('Y').'">'.$separator.'</li>';//Monthdisplayecho'<liclass="item-monthitem-month-'.get_the_time('m').'"><strongclass="bread-monthbread-month-'.get_the_time('m').'"title="'.get_the_time('M').'">'.get_the_time('M').'Archives</strong></li>';}elseif(is_year()){//Displayyeararchiveecho'<liclass="item-currentitem-current-'.get_the_time('Y').'"><strongclass="bread-currentbread-current-'.get_the_time('Y').'"title="'.get_the_time('Y').'">'.get_the_time('Y').'Archives</strong></li>';}elseif(is_author()){//Authorarchive//Gettheauthorinformationglobal$author;$userdata=get_userdata($author);//Displayauthornameecho'<liclass="item-currentitem-current-'.$userdata->user_nicename.'"><strongclass="bread-currentbread-current-'.$userdata->user_nicename.'"title="'.$userdata->display_name.'">'.'Author:'.$userdata->display_name.'</strong></li>';}elseif(get_query_var('paged')){//Paginatedarchivesecho'<liclass="item-currentitem-current-'.get_query_var('paged').'"><strongclass="bread-currentbread-current-'.get_query_var('paged').'"title="Page'.get_query_var('paged').'">'.__('Page').''.get_query_var('paged').'</strong></li>';}elseif(is_search()){//Searchresultspageecho'<liclass="item-currentitem-current-'.get_search_query().'"><strongclass="bread-currentbread-current-'.get_search_query().'"title="Searchresultsfor:'.get_search_query().'">Searchresultsfor:'.get_search_query().'</strong></li>';}elseif(is_404()){//404pageecho'<li>'.'Error404'.'</li>';}echo'</ul>';}}