下载鸥 > 网站下载 > 开发教程 > WordPress

WordPress不通过插件实现面包屑功能

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

有帮助,很赞!

信息来源:精准像素
导出教程 下载word版教程
发表评论 共有条评论
关于WordPress


WordPress是世界级的博客程序,有过百万的模板插件支持,其外型大多十分美观,功能十分强大,可作为博客用户的首选。但如果是企业网站建设,则不建议选用WordPress:数据量是个大问题。

推荐WordPress开发教程
不懂开发,怎样用WordPress建站?
不懂开发,怎样用WordPress建站?

目前市面上的第三方建站程序很多,但使用WordPress建站无疑具备了高效、美观...

17 1344
WordPress怎样搬家/更换域名?搬家后乱码/跳转/404怎么办?
WordPress怎样搬家/更换域名?搬家后乱码/跳转/404怎么办?

对于建站时间稍长的站长来说,换域名、换服务器、搬家都是必要的操作。如果使...

10 2027
Wordpress怎样设置短代码?
Wordpress怎样设置短代码?

我知道wordpress有神奇的自定义函数,这个自定义函数基本上可以代替大部分的...

17 438
WordPress信息时间改为多少时间前发表
WordPress信息时间改为多少时间前发表

相对日期,文章或者评论发表日期以“发表于1小时前”,这种形式显示,相对日期会...

9 461
怎样通过宝塔面板来优化WordPress缓存加速?
怎样通过宝塔面板来优化WordPress缓存加速?

如果你的服务器环境是用的宝塔面板,那么我们就可以通过宝塔面板来优化WordPr...

12 444
wordpress的模板配置方法
wordpress的模板配置方法

wordpress是全世界最流行的博客程序,国内用wordpress建站的站长占比也很高,当...

0 507
wordpress新手:更换域名后访问所有页面都跳转之前的域名
wordpress新手:更换域名后访问所有页面都跳转之前的域名

wordpress数据库里写了很多与域名相关的东西,如果更换了域名,需要对域名进行...

0 538
分享一段WordPress面包屑导航源码
分享一段WordPress面包屑导航源码

WordPress博客程序非常好用,但他的一个缺点是不带面包屑导航。而面包屑导航...

1 500
推荐插件
帝国cms多栏目多数据表自动审核推送插件
帝国cms多栏目多数据表自动审核推送插件

本插件基于帝国cms帝国cms每日自动审核插件,在自动审核指定条数信息的基础上...

0 891
帝国cms百度AI图像无损放大api接口对接插件
帝国cms百度AI图像无损放大api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像无损放大的功能。经过...

0 438
帝国CMS内网用户静态站点文章访客统计插件
帝国CMS内网用户静态站点文章访客统计插件

本插件适用于内网用户,可查看单篇文章访问者ip地址。如果添加访问者ip组,可查...

0 537
帝国cms网站会员登录与退出历史记录日志插件
帝国cms网站会员登录与退出历史记录日志插件

帝国cms默认只有上次登录时间与ip,没有一个记录清单,所以今天,我们分享这个帝...

0 357
帝国cms智能自动审核按星期几审核指定栏目带推送插件
帝国cms智能自动审核按星期几审核指定栏目带推送插件

采集站的必备资源是自动审核,要做到日收录也离不开定时发布。而本插件的自动...

0 1274
帝国cms百度AI黑白图像上色api接口对接插件
帝国cms百度AI黑白图像上色api接口对接插件

百度开放了系列AI功能api如图像上色、图像去雾、图像修复、无损放大、清晰...

0 398
帝国cms在线考试系统模板插件
帝国cms在线考试系统模板插件

一直没看到好用的帝国cms在线考试插件,所以自己开发了一款。在线考试插件用...

0 1258
帝国cms批量添加后台用户插件
帝国cms批量添加后台用户插件

使用帝国cms的企业用户、新闻资讯类站点的用户很多,此类站点很多时候需要有...

0 676
客服QQ:341553759
扫码咨询 常见问题 >
官方交流群:90432500
点击加入