分享一個(gè)WordPress面包屑導(dǎo)航代碼

下面由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?.?‘
  • ‘; ????????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?‘

  • labels->name?.?‘”>’?.?$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?‘

  • labels->name?.?‘”>’?.?$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?‘

  • ID?.?‘”>ID?.?‘”?title=”‘?.?get_the_title()?.?‘”>’?.?get_the_title()?.?‘
  • ‘; ?????????????????? ????????????//?Post?is?in?a?custom?taxonomy ????????????}?else?if(!empty($cat_id))?{ ?????????????????? ????????????????echo?‘

  • ‘?.?$cat_name?.?‘
  • ‘; ????????????????echo?‘

  • ?‘?.?$separator?.?‘?
  • ‘; ????????????????echo?‘

  • ID?.?‘”>ID?.?‘”?title=”‘?.?get_the_title()?.?‘”>’?.?get_the_title()?.?‘
  • ‘; ?????????????? ????????????}?else?{ ?????????????????? ????????????????echo?‘

  • ID?.?‘”>ID?.?‘”?title=”‘?.?get_the_title()?.?‘”>’?.?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?‘

  • ID?.?‘”>?‘?.?get_the_title()?.?‘
  • ‘; ??????????????????? ????????????}?else?{ ??????????????????? ????????????????//?Just?display?active?page?if?not?parents?pages ????????????????echo?‘

  • ID?.?‘”>ID?.?‘”>?‘?.?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?‘

  • user_nicename?.?‘”>user_nicename?.?‘”?title=”‘?.?$userdata->display_name?.?‘”>’?.?‘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?‘

‘;?? ????} }

將調(diào)用代碼放到主題模板適當(dāng)位置比如header.php中:

<?php  if (function_exists(&#39;tsh_wp_custom_breadcrumbs&#39;)) 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; }

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊10 分享