WordPress 添加面包屑导航 Breadcrumb

2023-10-29 03:58

本文主要是介绍WordPress 添加面包屑导航 Breadcrumb,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

几天前,@斌果 让我分享一下 WordPress 添加面包屑导航的代码,今天就拿出自己现在用的代码,来自老外的某个主题。关于什么是面包屑导航,以及它的作用,倡萌就不阐述了,直接看下图就明白了:

breadcrumb-wpdaxue_com

将下面的代码添加到主题的 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.wpdaxue.com/wordpress-add-a-breadcrumb.html*/
function cmp_breadcrumbs() {$delimiter = '»'; // 分隔符$before = '<span class="current">'; // 在当前链接前插入$after = '</span>'; // 在当前链接后插入if ( !is_home() && !is_front_page() || is_paged() ) {echo '<div itemscope itemtype="http://schema.org/WebPage" id="crumbs">'.__( 'You are here:' , 'cmp' );global $post;$homeLink = home_url();echo ' <a itemprop="breadcrumb" href="' . $homeLink . '">' . __( 'Home' , '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')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';echo '<a itemprop="breadcrumb"  href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '">' . 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')) . '">' . 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'] . '/">' . $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) . '">' . $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) . '">' . 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>';}
}

以上的代码功能已经十分完善了,带有 Html5微数据,包含本地化翻译(请将所有 'cmp' 修改为你的主题专用的 textdomain,不明白的请阅读:让WordPress主题支持语言本地化)

在主题模板中使用以下代码调用:

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

至于 css美化什么的,自己折腾。

转自:http://www.wpdaxue.com/wordpress-add-a-breadcrumb.html

这篇关于WordPress 添加面包屑导航 Breadcrumb的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/298092

相关文章

WordPress开发中常用的工具或api文档

http://php.net/ http://httpd.apache.org/ https://wordpress.org/ https://cn.wordpress.org/ https://core.svn.wordpress.org/ zh-cn:开发者文档: https://codex.wordpress.org/zh-cn:%E5%BC%80%E5%8F%91%E8%80%

windows下php+nginx的wordpress配置教程和问题解决

介绍: 我在windows下安装wordrpress 环境:windows10php8mysql8nginx1.26 受启发于,在此基础上修改整理:https://www.cnblogs.com/hanzohuang/p/18067525 教程: 1、安装对应的win平台的环境安装包(免安装版) php-8.3.11-Win32-vs16-x64 mysql8 nginx1

CSS学习6--背景图片、颜色、位置、附着、简写、透明、缩放、多背景、凹凸文字、导航栏例子

CSS背景 一、背景颜色和图片二、背景位置三、背景附着四、背景简写五、背景透明六、背景缩放七、多背景八、凹凸文字九、导航栏例子 一、背景颜色和图片 background-color: pink; 背景颜色backgroundoimage: url(##.jpg); 背景图片background-repeat: 平铺 repeat-x横向平铺,repeat-y纵向平铺; 平铺不到

Win10 - 删除快速访问导航栏

1、按下 Win + R 键,在运行中输入 regedit 回车,打开注册表 2、然后定位到 HKEY_CLASSES_ROOT\CLSID\{679f85cb-0220-4080-b29b-5540cc05aab6}\ShellFolder 中 3、这时需要对 ShellFolder 进行权限修改,不然是没法修改该项下的数据。参考 Win10注册表获取权限的方法 4、得到权限后,再把把右

WordPress MIP 插件:WordPress MIP 独立域名绑定及支持熊掌号

WordPress MIP 主题的同名插件,WordPress MIP 之 WordPress MIP 插件,用于支持发布的所有收费 MIP 主题,支持绑定独立 MIP 域名及熊掌号的快速接入,就是为了让更多的 WordPress 同学更快更方便的引入百度 MIP,享受百度 MIP 带来的流量、权重或者是快感。为了继承 WordPress MIP 主题的免费思想,所以 WordPress MIP

WordPressMIP主题下载,WordPress MIP与百度熊掌号改造接入(V3.4.1)

WordPressMIP主题,是基于熊掌号最新移动端主题,根据百度MIP开发规范升级改造而成,移除冗余代码,完美符合百度MIP规范的一款WordPress移动端主题。   WordPress快速引入百度MIP其实也挺简单,懂代码的人可以直接根据百度MIP官网的规范和验证提示进行原有移动端的改造,不过需要说一点的就是,那些使用自适应的网站引入MIP估计是有点繁琐,甚至基本不太可能,与其改造原

WordPress图片水印插件

WordPress图片水印插件 强调图片版权,防止懒人直接盗图,给图片加上水印还是很必要的。图像处理熟手,对上传到主机的图片都会进行一些修饰,顺便加上水印,是很简单的事,但大部分童鞋还是喜欢能自动给图片加上水印,WordPress有强大的插件能为我们提供方便。 WordPress插件安装页面,输入“watermark ”关键词并搜索,会找到众多的图片加水印插件,比如: Easy Waterm

wordpress免插件添加禁止某些用户登录的方法

wordpress免插件添加禁止某些用户登录的方法 在一些情况下,比如某些用户损害了网站的利益,有不方便直接删除账号的,你可能就需要禁止他们登录网站,今天咱们就来介绍下wordpress如何添加禁止用户登录。 咱们只需要在“ functions.php”中加入以下代码即可。 /*** WordPress 禁止某些用户登录*zzzjtd.com 志在指尖*///在资料页面添加选项fun

WordPress 手动还原到旧版本与新版

WordPress 手动还原到旧版本与新版 WordPress后台一般都可以直接一键升级,但是也存在一些情况导致无法自动升级,比如说权限不足,还有就是一些文件的权限不一样,当然我们可以设置0777权限,但是不够安全。简单说一下 wordpress 手动还原到旧版本 和 WordPress 手动更新到最新版的方法,其实,操作都是一样的,可以说是手动更新到任意版本。

WordPress的安装与简单开发教程

WordPress是目前世界上最受欢迎的开源内容管理系统(CMS),它以简便易用、扩展性强和庞大的生态系统著称。通过它,你可以轻松构建博客、企业网站、电子商务平台等多种类型的网站。本文将为你介绍WordPress的安装过程,以及如何进行简单的开发。 第一部分:WordPress的安装 1.1. 安装前的准备 在安装WordPress之前,你需要准备以下环境: Web服务器:如Apach