WordPress免插件实现面包屑导航的示例代码
你如果在开发自己的wordpress主题,想加入面包屑导航,而又不想使用插件的话,下面的代码对你有帮助,这里提供了网上较为流行的两种代码,一是功能非常完善的,一是一个较为简洁的代码。
前面介绍了一种方法,你也可以尝试一下,在文末给大家详细介绍了
功能非常完善代码
1、将下面的代码添加到主题的functions.php:
/**
*WordPress添加面包屑导航
*http://www.511yj.com/wordpress-add-breadcrumb.html
*/
functioncmp_breadcrumbs(){
$delimiter='»';//分隔符
$before='';//在当前链接前插入
$after='';//在当前链接后插入
if(!is_home()&&!is_front_page()||is_paged()){
echo''.__('当前位置:','cmp');
global$post;
$homeLink=home_url();
echo''.__('无作为','cmp').''.$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(''.get_the_time('Y').''.$delimiter.'';
echo''.get_the_time('F').''.$delimiter.'';
echo$before.get_the_time('d').$after;
}elseif(is_month()){//月存档
echo''.get_the_time('Y').''.$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''.$post_type->labels->singular_name.''.$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('labels->singular_name.$after;
}elseif(is_attachment()){//附件
$parent=get_post($post->post_parent);
$cat=get_the_category($parent->ID);$cat=$cat[0];
echo''.$parent->post_title.' '.$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[]='ID).'"rel="externalnofollow">'.get_the_title($page->ID).'';
$parent_id=$page->post_parent;
}
$breadcrumbs=array_reverse($breadcrumbs);
foreach($breadcrumbsas$crumb)echo$crumb.''.$delimiter.'';
echo$before.get_the_title().$after;
}elseif(is_search()){//搜索结果
echo$before;
printf(__('SearchResultsfor:%s','cmp'),get_search_query());
echo$after;
}elseif(is_tag()){//标签存档
echo$before;
printf(__('TagArchives:%s','cmp'),single_tag_title('',false));
echo$after;
}elseif(is_author()){//作者存档
global$author;
$userdata=get_userdata($author);
echo$before;
printf(__('AuthorArchives:%s','cmp'),$userdata->display_name);
echo$after;
}elseif(is_404()){//404页面
echo$before;
_e('NotFound','cmp');
echo$after;
}
if(get_query_var('paged')){//分页
if(is_category()||is_day()||is_month()||is_year()||is_search()||is_tag()||is_author())
echosprintf(__('(Page%s)','cmp'),get_query_var('paged'));
}
echo' 前台调用
下面看下自定义函数实现wordpress面包屑导航的代码
面包屑导航一是方便读者所在的位置,更重要的是对SEO非常友好,利于蜘蛛知道你网站的目录结构,所以给我们的wordpress主题添加面包屑导航是必须的。
1、在functioss.php添加以下代码
/**
*WordPress添加面包屑导航
*面包屑导航,直接输出(echo)
*BreadcrumbTrail
*@paramstring$sep导航对象分隔符,默认为'>'
*/
functionbread_nav($sep='>'){
echo'您当前的位置:首页';
if(is_category()){//如果是栏目页面
global$cat;
echo$sep.get_category_parents($cat,true,$sep).'文章列表';
}elseif(is_page()){//如果是自定义页面
echo$sep.get_the_title();
}elseif(is_single()){//如果是文章页面
$categories=get_the_category();
$cat=$categories[0];
echo$sep.get_category_parents($cat->term_id,true,$sep).'正文内容'.get_the_title();
}
echo' 2、前台调用
总结
到此这篇关于WordPress免插件实现面包屑导航的示例代码的文章就介绍到这了,更多相关WordPress面包屑导航内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。