面包屑导航制作
一、利用get_category_parents 1 2 3 4 5 6 7 8 9 10 <?php …
一、利用get_category_parents
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
 | 
 
<?php echo get_category_parents($category, $display_link, $separator, $nice_name); ?>
 
【参数说明】 
$category
 
(integer) 分类ID,默认为当前分类ID
 
$display_link
 
(boolean) 是否创建更分类的链接.
 
$separator
 
(string) 各个分类的分隔符.
 
$nice name
 
(boolean) 是否返回分类别名 (默认为:FALSE,不返回).
 
 | 
【示例】
指定不同的目录文章应用不同的模板,输出当前分类的父级分类,分隔符为 ‘»’
实例代码如下:
| 
 1 
 | 
 
<?php echo get_category_parents($cat, TRUE, ‘ » ‘); ?>
 
 | 
输出:Internet » Blogging » WordPress »
 
二、functions.php 添加面包屑导航
将下面的代码添加到主题的 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 
 | 
 
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>’;
 
	}
 
} 
 | 
在主题模板中使用以下代码调用:
| 
 1 
 | 
 
<?php if(function_exists(‘cmp_breadcrumbs’)) cmp_breadcrumbs();?>
 
 | 
类别:WordPress开发、 
		本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论功能已经关闭!