1 855 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作为顶级博客程序,海量插件一直是为人所津津乐道的。大多数WordPre...
我知道wordpress有神奇的自定义函数,这个自定义函数基本上可以代替大部分的...
如果你的服务器环境是用的宝塔面板,那么我们就可以通过宝塔面板来优化WordPr...
打造互联网个体品牌的用户个体越来越多,WordPress是一个相当不错的方案。但...
wordpress数据库里写了很多与域名相关的东西,如果更换了域名,需要对域名进行...
WordPress有缩略图字段,但如果没有录入缩略图,能否自动获取文章内的第一张图...
一直没看到好用的帝国cms在线考试插件,所以自己开发了一款。在线考试插件用...
帝国CMS自带的搜索功能虽然强大,但也有很强的局限性 -- 必须关键词完全匹配...
采集站的必备资源是自动审核,要做到日收录也离不开定时发布。而本插件的自动...
用户体验是我们的需求,百度蜘蛛的认可更是我们的需求。毕竟,没有收录排名,何来...
帝国cms默认只有上次登录时间与ip,没有一个记录清单,所以今天,我们分享这个帝...
下载鸥开发了这款帝国cms封禁ip插件,自动记录访问情况,让我们可以更快的识别...
本插件适用于内网用户,可查看单篇文章访问者ip地址。如果添加访问者ip组,可查...
帝国cms有自带的给关键词添加内链功能,但需要手动添加关键词,容易出现疏漏和...