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

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

793 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 1206
WordPress怎样搬家/更换域名?搬家后乱码/跳转/404怎么办?
WordPress怎样搬家/更换域名?搬家后乱码/跳转/404怎么办?

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

10 1699
WordPress信息时间改为多少时间前发表
WordPress信息时间改为多少时间前发表

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

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

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

12 322
使用WordPress搭建个人博客要如何选择服务器呢?
使用WordPress搭建个人博客要如何选择服务器呢?

打造互联网个体品牌的用户个体越来越多,WordPress是一个相当不错的方案。但...

1 652
wordpress的模板配置方法
wordpress的模板配置方法

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

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

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

0 385
WordPress怎样获取文章第一张缩略图
WordPress怎样获取文章第一张缩略图

WordPress有缩略图字段,但如果没有录入缩略图,能否自动获取文章内的第一张图...

0 331
随机WordPress开发教程
WordPress引用加载PHP模板方法
WordPress引用加载PHP模板方法

WordPressr如何引用加载PHP模板?原理其实跟其他CMS都一样,不过WordPress有他...

3 619
新手利用WordPress建站详细步骤分享
新手利用WordPress建站详细步骤分享

WordPress是目前使用比较多的建站程序,用户可以在支持PHP和MySQL数据库的服...

1 643
WordPress常用快捷键大全
WordPress常用快捷键大全

适用于Windows的WordPress键盘快捷键。...

7 626
WordPress怎样手动更新程序?
WordPress怎样手动更新程序?

到这里,就完成手动更新WordPress核心了,剩下的就需要登录网站后台,清空一下缓...

7 569
WordPress火车头发布规则
WordPress火车头发布规则

火车头采集规则都收费,这篇火车头WordPress发布规则写法教程送给大家。由于w...

0 681
Wordpress外链转内链修改方法
Wordpress外链转内链修改方法

给网站添加外链go跳转效果既美观又可避免权重流失,一个简单的SEO优化确实是...

10 751
使用WordPress搭建个人博客要如何选择服务器呢?
使用WordPress搭建个人博客要如何选择服务器呢?

打造互联网个体品牌的用户个体越来越多,WordPress是一个相当不错的方案。但...

1 652
WordPress怎样添加百度统计代码?
WordPress怎样添加百度统计代码?

百度统计是目前较为完善的流量统计系统,且百度占据国内搜索引擎市场的龙头地...

8 266
客服QQ:341553759
点击咨询 常见问题 >
官方交流群:90432500
点击加入