wordpress 非插件实现文章面包屑(Breadcrumbs)导航
什么是面包屑导航?就是像这样的。
对于以内容为主,分类层次较多的站点来说,一个清晰的面包屑导航设计是非常重要的,因为它总能帮助用户在需要跳出的时候,如同灯塔一样迅速找到方向,所以快观察下你的网站是否有相关方面的考虑和设计,如果还没有面包屑导航的话,请结合自己的主题,按下面讲述的方法来实现wordpress文章面包屑导航吧.
1、首先将以下代码添加到主题的 functions.php 文件中,最后在single.php、archive.php、archives.php、links.php、page.php等文件合适的地方添加调用代码即可。
function wheatv_breadcrumbs() {
$delimiter = ' > ';
$name = '首页 > 麻醉学'; //
if( !is_home() ||!is_front_page() || is_paged() ){
global $post;
$home = get_bloginfo('url');
echo '<a href="' . $home . '" class="gray">' . $name . '</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) echo(get_category_parents($parentCat, TRUE, ' ' . $delimiter . ' '));
echo single_cat_title();
} elseif ( is_day() ) {
echo '<a href="' . get_year_link(get_the_time('Y')) . '" class="gray">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
echo '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '" class="gray">' . get_the_time('F') . '</a> ' . $delimiter . ' ';
echo get_the_time('d');
} elseif ( is_month() ) {
echo '<a href="' . get_year_link(get_the_time('Y')) . '" class="gray">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
echo get_the_time('F');
} elseif ( is_year() ) {
echo get_the_time('Y');
} elseif ( is_single() ) {
$cat = get_the_category(); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
echo "正文";
} elseif ( is_page()||!$post->post_parent ) {
the_title();
} elseif ( is_page()||$post->post_parent ) {
$parent_id = $post->post_parent;
$breadcrumbs = array();
while ($parent_id) {
$page = get_page($parent_id);
$breadcrumbs[] = '<a href="http://www.wheatv.com/site/wp-admin/ . get_permalink($page->ID) . " class="gray">' . get_the_title($page->ID) . '</a>';
$parent_id = $page->post_parent;
}
$breadcrumbs = array_reverse($breadcrumbs);
foreach ($breadcrumbs as $crumb) echo $crumb . ' ' . $delimiter . ' ';
the_title();
} elseif ( is_search() ) {
echo get_search_query();
} elseif ( is_tag() ) {
echo single_tag_title();
} elseif ( is_author() ) {
global $author;
$userdata = get_userdata($author);
echo '由'.$userdata->display_name.'发表';
} elseif ( is_404() ) {
echo '404 错误';
}
if ( get_query_var('paged') ) {
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
echo '第' . ' ' . get_query_var('paged').' 页';
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
}
}else{
echo $name;
}
}
2、然后直接在需要的地方调用<?php wheatv_breadcrumbs(); ?>此函数即可。
|