1. 首页 > CMS系统 > Wordpress

WordPress免插件实现面包屑导航的示例代码

你如果在开发自己的wordpress主题,想加入面包屑导航,而又不想使用插件的话,下面的代码对你有帮助,这里提供了网上较为流行的两种代码,一是功能非常完善的,一是一个较为简洁的代码。

前面介绍了一种方法,你也可以尝试一下,在文末给大家详细介绍了自定义函数实现wordpress面包屑导航的代码,可以点击查看下。

功能非常完善代码

1、将下面的代码添加到主题的 functions.php

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/**
 * WordPress 添加面包屑导航
 * http://www.511yj.com/wordpress-add-breadcrumb.html
 */
function cmp_breadcrumbs() {
 $delimiter = '»'; // 分隔符
 $before = '<span>'; // 在当前链接前插入
 $after = '</span>'; // 在当前链接后插入
 if ( !is_home() && !is_front_page() || is_paged() ) {
 echo '<div itemscope itemtype="http://schema.org/WebPage" id="crumbs">'.__( '当前位置:' , 'cmp' );
 global $post;
 $homeLink = home_url();
 echo ' <a itemprop="breadcrumb" href="' . $homeLink . '" rel="external nofollow" >' . __( '无作为' , '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','<a itemprop="breadcrumb"', $cat_code );
 }
 echo $before . '' . single_cat_title('', false) . '' . $after;
 } elseif ( is_day() ) { // 天 存档
 echo '<a itemprop="breadcrumb" href="' . get_year_link(get_the_time('Y')) . '" rel="external nofollow" rel="external nofollow" >' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
 echo '<a itemprop="breadcrumb" href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '" rel="external nofollow" >' . get_the_time('F') . '</a> ' . $delimiter . ' ';
 echo $before . get_the_time('d') . $after;
 } elseif ( is_month() ) { // 月 存档
 echo '<a itemprop="breadcrumb" href="' . get_year_link(get_the_time('Y')) . '" rel="external nofollow" rel="external nofollow" >' . 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="external nofollow" >' . $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','<a itemprop="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="external nofollow" >' . $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="external nofollow" >' . get_the_title($page->ID) . '</a>';
 $parent_id = $page->post_parent;
 }
 $breadcrumbs = array_reverse($breadcrumbs);
 foreach ($breadcrumbs as $crumb) echo $crumb . ' ' . $delimiter . ' ';
 echo $before . get_the_title() . $after;
 } elseif ( is_search() ) { // 搜索结果
 echo $before ;
 printf( __( 'Search Results for: %s', 'cmp' ), get_search_query() );
 echo $after;
 } elseif ( is_tag() ) { //标签 存档
 echo $before ;
 printf( __( 'Tag Archives: %s', 'cmp' ), single_tag_title( '', false ) );
 echo $after;
 } elseif ( is_author() ) { // 作者存档
 global $author;
 $userdata = get_userdata($author);
 echo $before ;
 printf( __( 'Author Archives: %s', 'cmp' ), $userdata->display_name );
 echo $after;
 } elseif ( is_404() ) { // 404 页面
 echo $before;
 _e( 'Not Found', 'cmp' );
 echo $after;
 }
 if ( get_query_var('paged') ) { // 分页
 if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() )
 echo sprintf( __( '( Page %s )', 'cmp' ), get_query_var('paged') );
 }
 echo '</div>';
 }
}

前台调用

?
1
<?php if(function_exists('cmp_breadcrumbs')) cmp_breadcrumbs();?>

下面看下自定义函数实现wordpress面包屑导航的代码

面包屑导航 一是方便读者所在的位置,更重要的是对SEO非常友好,利于蜘蛛知道你网站的目录结构,所以给我们的wordpress主题添加面包屑导航是必须的。

1、在functioss.php添加以下代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
 * WordPress 添加面包屑导航
 * 面包屑导航,直接输出(echo)
 * Breadcrumb Trail
 * @param string $sep 导航对象分隔符,默认为' > '
 */
function bread_nav($sep = ' > '){
  echo '<div><span></span> 您当前的位置: <a href="'. home_url() .'" id="codetool">

2、前台调用

?
1
<?php bread_nav();?>

总结

到此这篇关于WordPress免插件实现面包屑导航的示例代码的文章就介绍到这了,更多相关WordPress面包屑导航内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

原文链接:https://blog.csdn.net/zcp528/article/details/108063261

  • WordPress
  • 面包屑导航
  • 延伸 · 阅读

    • 2022-03-01Centos7的apache网站环境搭建wordpress
    • 2022-03-01详解Xampp和wordpress在Centos7上的搭建与使用
    • 2022-02-25PHP Everywhere漏洞使三万多个WordPress网站处于RCE攻击
    • 2022-02-23阿里云虚拟主机WordPress无法发送邮件解决方案
    • 2022-02-23阿里云虚拟主机如何设置wordpress伪静态规则
    • 2022-02-22最新发布的WordPress插件漏洞已影响300万个站点
    精彩推荐
    • WordpressWordPress 显示文章摘要方法 详细篇

      WordPress 显示文章摘要方法 详细篇

      WordPress又一个比较不好的地方,首页、分类和其它归档页,文章默认都是全文输出排列的。不知现在国外博客是否都流行这种显示方式,反正我个人是很不...

      WordPress建站网9222019-09-28
    • WordpressWordPress统计当前页面数据库查询次数及消耗时间的方法

      WordPress统计当前页面数据库查询次数及消耗时间的方法

      这篇文章主要为大家介绍了WordPress统计当前页面数据库查询次数及消耗时间的方法,涉及get_num_queries与timer_stop函数的使用技巧,需要的朋友可以参考下...

      6822019-09-04
    • WordpressUbuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法

      Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决

      这篇文章给大家介绍的是在Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法,相信"建立数据库连接错误"大家并不陌生,最近我在做一...

      chriscabin11012021-03-18
    • WordpressWordpress被忽略的SEO技巧介绍

      Wordpress被忽略的SEO技巧介绍

      本文将从一个小细节说起来提升你网站的SEO功能 ...

      点金主题网3022019-09-28
    • WordpressWordPress中登陆后关闭登陆页面及设置用户不可见栏目

      WordPress中登陆后关闭登陆页面及设置用户不可见栏目

      这篇文章主要介绍了WordPress中登陆后关闭登陆页面及设置用户不可见栏目的方法,是多用户模式下比较实用的两个功能,需要的朋友可以参考下...

      露兜4122020-12-12
    • Wordpress详解WordPress中调用评论模板和循环输出评论的PHP函数

      详解WordPress中调用评论模板和循环输出评论的PHP函数

      这篇文章主要介绍了WordPress中调用评论模板和循环输出评论的PHP函数,分别是comments_template函数与wp_list_comments函数的使用,需要的朋友可以参考下...

      稍息少年6032020-12-13
    • WordpressWordPress 插件直接将服务器文件导入媒体库

      WordPress 插件直接将服务器文件导入媒体库

      WordPress 插件 直接将服务器文件导入媒体库 ...

      WordPress教程网10172019-10-07
    • WordpressWordPress中用于获取及自定义头像图片的PHP脚本详解

      WordPress中用于获取及自定义头像图片的PHP脚本详解

      这篇文章主要介绍了WordPress中用于获取及自定义头像图片的PHP脚本编写方法,分别为get_avatar()和alt标签的使用,需要的朋友可以参考下...

      斌果4082020-12-08
    最近更新
    • 手机版wordpress怎么用
    • devops工程师(devops考试费用)
    • shopex主机(独立站shopify)
    • devops开发运维一体化
    • 一个人怎么做独立站shopify(国外独立网站如何
    编辑推荐
    • 美国和欧洲 vps哪个好?美国和欧洲vps详细对比
      美国和欧洲 vps哪个好?美国和欧洲vps详细对比
    • 2云服务器是什么,云主机干什么用的?

      云服务器是什么,云主机干什么用的?

      2020-07-22
    • 32020最新好用的web服务器软件推荐

      2020最新好用的web服务器软件推荐

      2020-05-17
    • 4服务器操作系统有哪些?

      服务器操作系统有哪些?

      2020-04-06
    • 5web服务器配置(图文详解)

      web服务器配置(图文详解)

      2020-04-06
    • 6企业如何选择阿里云服务器配置?

      企业如何选择阿里云服务器配置?

      2019-10-18
    • 7五大免费主机管理系统优缺点对比及推荐

      五大免费主机管理系统优缺点对比及推荐

      2019-06-14
    • 82019最新三款Windows下连接Linux的ssh软件下载推荐

      2019最新三款Windows下连接Linux的ssh软件下载推荐

      2019-05-28
    • 9服务器常用管理软件盘点

      服务器常用管理软件盘点

      2019-05-27
    • 10Nginx服务器究竟是怎么执行PHP项目

      Nginx服务器究竟是怎么执行PHP项目

      2019-05-24
    阅读排行
    • 1 WordPress提示require_once() Failed opening required的解
    • 2 WordPress语言切换(例如中文版和英文版转换)
    • 3 如何一次性删除wordpress所有文章
    • 4 阿里云虚拟主机如何设置wordpress伪静态规则
    • 5 WordPress中的shortcode短代码功能使用详解
    • 6 wordpress网站默认的nginx伪静态规则
    • 7 WordPress中设置Post Type自定义文章类型的实例教
    • 8 WordPress伪静态规则设置代码实例
    • 9 WordPress 全站改https方法
    • 10 WordPress迁移时一些常见问题的解决方法整理
    热门标签
    502   静态缓存文件   博客系统   搜索引擎优化   网站运行速度   页面压缩   加速   网站访问   速度优化   网站被挂马   中文留言   fastcgi_cache   缓存加速   wp-config.php   静态化   WP-No-Category-Base   分类链接   阿里云虚拟主机   自动替换   WordPres   管理面板   文章类型   后台地址   幻灯片   附件下载地址   SAE   静态化插件   php-cgi   负载过高   wp-cron.php  
    © 2019-2023 (www.jb51.net) 版权所有关于我们联系我们版权申明网站地图

    本文由主机测评网发布,不代表主机测评网立场,转载联系作者并注明出处:https://zhuji.jb51.net/wordpress/7362.html

    联系我们

    在线咨询:点击这里给我发消息

    微信号:

    工作日:8:30-17:30,节假日休息