下面由WordPress教程欄目給大家分享一個(gè)wordpress面包屑導(dǎo)航代碼,希望對(duì)需要的朋友有所幫助!
轉(zhuǎn)載分享一段WordPress面包屑導(dǎo)航代碼,支持自定義帖子類型、自定義分類,但貌似在分類歸檔頁面不能顯示父子分類層級(jí)有點(diǎn)遺憾。
將代碼添加到當(dāng)前主題函數(shù)模板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?.?‘
- ?‘?.?$separator?.?‘?
- ‘?.?post_type_archive_title(”,?false)?.?‘
- labels->name?.?‘”>’?.?$post_type_object->labels->name?.?‘
- ?‘?.?$separator?.?‘?
- ‘?.?$custom_tax_name?.?‘
- labels->name?.?‘”>’?.?$post_type_object->labels->name?.?‘
- ?‘?.?$separator?.?‘?
- ‘.$parents.’
- ?‘?.?$separator?.?‘?
- ID?.?‘”>ID?.?‘”?title=”‘?.?get_the_title()?.?‘”>’?.?get_the_title()?.?‘
- ‘?.?$cat_name?.?‘
- ?‘?.?$separator?.?‘?
- ID?.?‘”>ID?.?‘”?title=”‘?.?get_the_title()?.?‘”>’?.?get_the_title()?.?‘
- ID?.?‘”>ID?.?‘”?title=”‘?.?get_the_title()?.?‘”>’?.?get_the_title()?.?‘
- ‘?.?single_cat_title(”,?false)?.?‘
- ‘?.?get_the_title($ancestor)?.?‘
- ?‘?.?$separator?.?‘?
- ID?.?‘”>?‘?.?get_the_title()?.?‘
- ID?.?‘”>ID?.?‘”>?‘?.?get_the_title()?.?‘
- ‘?.?$get_term_name?.?‘
- ‘?.?get_the_time(‘Y’)?.?‘?Archives
- ?‘?.?$separator?.?‘?
- ‘?.?get_the_time(‘M’)?.?‘?Archives
- ?‘?.?$separator?.?‘?
- ?‘?.?get_the_time(‘jS’)?.?‘?‘?.?get_the_time(‘M’)?.?‘?Archives
- ‘?.?get_the_time(‘Y’)?.?‘?Archives
- ?‘?.?$separator?.?‘?
- ‘?.?get_the_time(‘M’)?.?‘?Archives
- ‘?.?get_the_time(‘Y’)?.?‘?Archives
- user_nicename?.?‘”>user_nicename?.?‘”?title=”‘?.?$userdata->display_name?.?‘”>’?.?‘Author:?‘?.?$userdata->display_name?.?‘
- ‘.__(‘Page’)?.?‘?‘?.?get_query_var(‘paged’)?.?‘
- Search?results?for:?‘?.?get_search_query()?.?‘
- ‘?.?‘Error?404’?.?‘
‘; ????????echo?‘
‘; ??????????? ????????if?(?is_archive()?&&?!is_tax()?&&?!is_category()?&&?!is_tag()?)?{ ?????????????? ????????????echo?‘
‘; ?????????????? ????????}?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?‘
‘; ????????????????echo?‘
‘; ?????????????? ????????????} ?????????????? ????????????$custom_tax_name?=?get_queried_object()->name; ????????????echo?‘
‘; ?????????????? ????????}?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?‘
‘; ????????????????echo?‘
‘; ?????????????? ????????????} ?????????????? ????????????//?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?.=?‘
‘; ????????????????????$cat_display?.=?‘
‘; ????????????????} ????????????? ????????????} ? ????????????$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?‘
‘; ?????????????????? ????????????//?Post?is?in?a?custom?taxonomy ????????????}?else?if(!empty($cat_id))?{ ?????????????????? ????????????????echo?‘
‘; ????????????????echo?‘
‘; ????????????????echo?‘
‘; ?????????????? ????????????}?else?{ ?????????????????? ????????????????echo?‘
‘; ?????????????????? ????????????} ?????????????? ????????}?else?if?(?is_category()?)?{ ??????????????? ????????????//?Category?page ????????????echo?‘
‘; ??????????????? ????????}?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?.=?‘
‘; ????????????????????$parents?.=?‘
‘; ????????????????} ??????????????????? ????????????????//?Render?parent?pages ????????????????echo?$parents; ??????????????????? ????????????????//?Active?page ????????????????echo?‘
‘; ??????????????????? ????????????}?else?{ ??????????????????? ????????????????//?Just?display?active?page?if?not?parents?pages ????????????????echo?‘
‘; ??????????????????? ????????????} ??????????????? ????????}?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?‘
‘; ??????????? ????????}?elseif?(?is_day()?)?{?//?Day?archive?page ??????????????? ????????????//?Year?link ????????????echo?‘
‘; ????????????echo?‘
‘; ??????????????? ????????????//?Month?link ????????????echo?‘
‘; ????????????echo?‘
‘; ??????????????? ????????????//?Day?display ????????????echo?‘
‘; ??????????????? ????????}?else?if?(?is_month()?)?{?//?Month?Archive ??????????????? ????????????//?Year?link ????????????echo?‘
‘; ????????????echo?‘
‘; ??????????????? ????????????//?Month?display ????????????echo?‘
‘; ??????????????? ????????}?else?if?(?is_year()?)?{?//?Display?year?archive ? ????????????echo?‘
‘; ??????????????? ????????}?else?if?(?is_author()?)?{?//?Author?archive ??????????????? ????????????//?Get?the?author?information ????????????global?$author; ????????????$userdata?=?get_userdata(?$author?); ??????????????? ????????????//?Display?author?name ????????????echo?‘
‘; ??????????? ????????}?else?if?(?get_query_var(‘paged’)?)?{ ??????????????? ????????????//?Paginated?archives ????????????echo?‘
‘; ??????????????? ????????}?else?if?(?is_search()?)?{ ??????????? ????????????//?Search?results?page ????????????echo?‘
‘; ??????????? ????????}?elseif?(?is_404()?)?{ ??????????????? ????????????//?404?page ????????????echo?‘
‘; ????????} ? ????????echo?‘
‘;?? ????} }
將調(diào)用代碼放到主題模板適當(dāng)位置比如header.php中:
<?php if (function_exists('tsh_wp_custom_breadcrumbs')) tsh_wp_custom_breadcrumbs(); ?>
配套樣式:
#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; }