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、前台调用
?
总结 到此这篇关于WordPress免插件实现面包屑导航的示例代码的文章就介绍到这了,更多相关WordPress面包屑导航内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持! 原文链接:https://blog.csdn.net/zcp528/article/details/108063261
精彩推荐
最近更新
编辑推荐
阅读排行
热门标签
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