1 891 2021-02-02 12:39:54
收藏你如果在开发自己的wordpress主题,想加入面包屑导航,而又不想使用插件的话,下面的代码对你有帮助,这里提供了网上较为流行的两种代码,一是功能非常完善的,一是一个较为简洁的代码。
前面介绍了一种方法,你也可以尝试一下,在文末给大家详细介绍了自定义函数实现wordpress面包屑导航的代码,可以点击查看下。
功能非常完善代码
1、将下面的代码添加到主题的 functions.php :
function cmp_breadcrumbs(){ $delimiter='»';//分隔符 $before='<span class="current">';//在当前链接前插入 $after='</span>';//在当前链接后插入 if(!is_home()&&!is_front_page()||is_paged()){ echo'<div itemscopeitemtype="http://schema.org/WebPage"id="crumbs">'.__('当前位置:','cmp'); global$post; $homeLink=home_url(); echo'<a itemprop="breadcrumb" href="'.$homeLink.'" rel="externalnofollow">'.__('无作为','cmp').'</a>'.$delimiter.''; if(is_category()){//分类存档 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){ $cat_code=get_category_parents($parentCat,TRUE,''.$delimiter.''); echo$cat_code=str_replace('<a','<aitemprop="breadcrumb"',$cat_code); } echo$before.''.single_cat_title('',false).''.$after; }elseif(is_day()){//天存档 echo'<aitemprop="breadcrumb"href="'.get_year_link(get_the_time('Y')).'"rel="externalnofollow"rel="externalnofollow">'.get_the_time('Y').'</a>'.$delimiter.''; echo'<aitemprop="breadcrumb"href="'.get_month_link(get_the_time('Y'),get_the_time('m')).'"rel="externalnofollow">'.get_the_time('F').'</a>'.$delimiter.''; echo$before.get_the_time('d').$after; }elseif(is_month()){//月存档 echo'<aitemprop="breadcrumb"href="'.get_year_link(get_the_time('Y')).'"rel="externalnofollow"rel="externalnofollow">'.get_the_time('Y').'</a>'.$delimiter.''; echo$before.get_the_time('F').$after; }elseif(is_year()){//年存档 echo$before.get_the_time('Y').$after; }elseif(is_single()&&!is_attachment()){//文章 if(get_post_type()!='post'){//自定义文章类型 $post_type=get_post_type_object(get_post_type()); $slug=$post_type->rewrite; echo'<a itemprop="breadcrumb" href="'.$homeLink.'/'.$slug['slug'].'/"rel="externalnofollow">'.$post_type->labels->singular_name.'</a>'.$delimiter.''; echo$before.get_the_title().$after; }else{//文章post $cat=get_the_category();$cat=$cat[0]; $cat_code=get_category_parents($cat,TRUE,''.$delimiter.''); echo$cat_code=str_replace('<a','<aitemprop="breadcrumb"',$cat_code); echo$before.get_the_title().$after; } }elseif(!is_single()&&!is_page()&&get_post_type()!='post'){ $post_type=get_post_type_object(get_post_type()); echo$before.$post_type->labels->singular_name.$after; }elseif(is_attachment()){//附件 $parent=get_post($post->post_parent); $cat=get_the_category($parent->ID);$cat=$cat[0]; echo'<a itemprop="breadcrumb" href="'.get_permalink($parent).'" rel="externalnofollow">'.$parent->post_title.'</a>'.$delimiter.''; echo$before.get_the_title().$after; }elseif(is_page()&&!$post->post_parent){//页面 echo$before.get_the_title().$after; }elseif(is_page()&&$post->post_parent){//父级页面 $parent_id=$post->post_parent; $breadcrumbs=array(); while($parent_id){ $page=get_page($parent_id); $breadcrumbs[]='<a itemprop="breadcrumb" href="'.get_permalink($page->ID).'" rel="externalnofollow">'.get_the_title($page->ID).'</a>'; $parent_id=$page->post_parent; } $breadcrumbs=array_reverse($breadcrumbs); foreach($breadcrumbsas$crumb)echo$crumb.''.$delimiter.''; echo$before.get_the_title().$after; }elseif(is_search()){//搜索结果 echo$before; printf(__('SearchResultsfor:%s','cmp'),get_search_query()); echo$after; }elseif(is_tag()){//标签存档 echo$before; printf(__('TagArchives:%s','cmp'),single_tag_title('',false)); echo$after; }elseif(is_author()){//作者存档 global$author; $userdata=get_userdata($author); echo$before; printf(__('AuthorArchives:%s','cmp'),$userdata->display_name); echo$after; }elseif(is_404()){//404页面 echo$before; _e('NotFound','cmp'); echo$after; } if(get_query_var('paged')){//分页 if(is_category()||is_day()||is_month()||is_year()||is_search()||is_tag()||is_author()) echosprintf(__('(Page%s)','cmp'),get_query_var('paged')); } echo'</div>'; } }
前台调用
<?php if(function_exists('cmp_breadcrumbs'))cmp_breadcrumbs();?>
下面看下自定义函数实现wordpress面包屑导航的代码
面包屑导航 一是方便读者所在的位置,更重要的是对SEO非常友好,利于蜘蛛知道你网站的目录结构,所以给我们的wordpress主题添加面包屑导航是必须的。
1、在functioss.php添加以下代码
function bread_nav($sep='>'){ echo'<div class="col-md-12"><span class="glyphiconglyphicon-hometext-primary"></span>您当前的位置:<ahref="'.home_url().'"title="首页">首页</a>'; if(is_category()){//如果是栏目页面 global$cat; echo$sep.get_category_parents($cat,true,$sep).'文章列表'; }elseif(is_page()){//如果是自定义页面 echo$sep.get_the_title(); }elseif(is_single()){//如果是文章页面 $categories=get_the_category(); $cat=$categories[0]; echo$sep.get_category_parents($cat->term_id,true,$sep).'正文内容'.get_the_title(); } echo'</div>'; }
2、前台调用
<?phpbread_nav();?>
本文地址:https://xzo.com.cn/develop/wp/433.html
如果您认可我们的分享,有意与我们合作开展帝国cms网站建设与开发业务或插件定制,请联系右侧在线客服。我们能给您的,就是高质量的模板与售后。
标注了信息来源为下载鸥的文章皆为原创,如果是转载的优质文章,我们也都标注了出处。如果您喜欢我们的文章,请按照下载鸥所标注的文章出处进行标注,谢谢您的配合。
WordPress是世界级的博客程序,有过百万的模板插件支持,其外型大多十分美观,功能十分强大,可作为博客用户的首选。但如果是企业网站建设,则不建议选用WordPress:数据量是个大问题。
目前市面上的第三方建站程序很多,但使用WordPress建站无疑具备了高效、美观...
对于建站时间稍长的站长来说,换域名、换服务器、搬家都是必要的操作。如果使...
我知道wordpress有神奇的自定义函数,这个自定义函数基本上可以代替大部分的...
相对日期,文章或者评论发表日期以“发表于1小时前”,这种形式显示,相对日期会...
如果你的服务器环境是用的宝塔面板,那么我们就可以通过宝塔面板来优化WordPr...
wordpress是全世界最流行的博客程序,国内用wordpress建站的站长占比也很高,当...
wordpress数据库里写了很多与域名相关的东西,如果更换了域名,需要对域名进行...
WordPress博客程序非常好用,但他的一个缺点是不带面包屑导航。而面包屑导航...
本插件基于帝国cms帝国cms每日自动审核插件,在自动审核指定条数信息的基础上...
通过本插件,可以实现帝国cms网站对接百度云api实现图像无损放大的功能。经过...
本插件适用于内网用户,可查看单篇文章访问者ip地址。如果添加访问者ip组,可查...
帝国cms默认只有上次登录时间与ip,没有一个记录清单,所以今天,我们分享这个帝...
采集站的必备资源是自动审核,要做到日收录也离不开定时发布。而本插件的自动...
百度开放了系列AI功能api如图像上色、图像去雾、图像修复、无损放大、清晰...
一直没看到好用的帝国cms在线考试插件,所以自己开发了一款。在线考试插件用...
使用帝国cms的企业用户、新闻资讯类站点的用户很多,此类站点很多时候需要有...