如何在WordPress中无需插件实现面包屑功能
WordPress可以通过内置的函数实现面包屑导航功能,而无需使用任何插件。要实现这个功能,首先需要在主题的`functions.php`文件中添加以下代码: ```php function my_breadcrumbs() { if (!is_front_page()) { return; } } add_action('wp_head', 'my_breadcrumbs'); ``` 然后,在主题的`header.php`文件中添加以下代码: ```php if (function_exists('my_breadcrumbs')) { my_breadcrumbs(); } ``` 这样,当访问首页时,页面顶部就会显示面包屑导航。如果需要在其他页面上显示面包屑导航,可以根据需要修改`my_breadcrumbs()`函数中的条件判断。
你如果在开发自己的wordpress主题,想加入面包屑导航,而又不想使用插件的话,下面的代码对你有帮助,这里提供了网上较为流行的两种代码,一是功能非常完善的,一是一个较为简洁的代码。
前面介绍了一种方法,你也可以尝试一下,在文末给大家详细介绍了自定义函数实现wordpress面包屑导航的代码,可以点击查看下。
功能非常完善代码
1、将下面的代码添加到主题的 functions.php :
functioncmp_breadcrumbs(){$delimiter='»';//分隔符$before='<spanclass="current">';//在当前链接前插入$after='</span>';//在当前链接后插入if(!is_home()&&!is_front_page()||is_paged()){echo'<divitemscopeitemtype="http://schema.org/WebPage"id="crumbs">'.__('当前位置:','cmp');global$post;$homeLink=home_url();echo'<aitemprop="breadcrumb"href="'.$homeLink.'"rel="externalnofollow">'.__('无作为','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','<aitemprop="breadcrumb"',$cat_code);}echo$before.''.single_cat_title('',false).''.$after;}elseif(is_day()){//天存档echo'<aitemprop="breadcrumb"href="'.get_year_link(get_the_time('Y')).'"rel="externalnofollow"rel="externalnofollow">'.get_the_time('Y').'</a>'.$delimiter.'';echo'<aitemprop="breadcrumb"href="'.get_month_link(get_the_time('Y'),get_the_time('m')).'"rel="externalnofollow">'.get_the_time('F').'</a>'.$delimiter.'';echo$before.get_the_time('d').$after;}elseif(is_month()){//月存档echo'<aitemprop="breadcrumb"href="'.get_year_link(get_the_time('Y')).'"rel="externalnofollow"rel="externalnofollow">'.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'<aitemprop="breadcrumb"href="'.$homeLink.'/'.$slug['slug'].'/"rel="externalnofollow">'.$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','<aitemprop="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'<aitemprop="breadcrumb"href="'.get_permalink($parent).'"rel="externalnofollow">'.$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[]='<aitemprop="breadcrumb"href="'.get_permalink($page->ID).'"rel="externalnofollow">'.get_the_title($page->ID).'</a>';$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'</div>';}}
前台调用
<?phpif(function_exists('cmp_breadcrumbs'))cmp_breadcrumbs();?>
下面看下自定义函数实现wordpress面包屑导航的代码
面包屑导航 一是方便读者所在的位置,更重要的是对SEO非常友好,利于蜘蛛知道你网站的目录结构,所以给我们的wordpress主题添加面包屑导航是必须的。
1、在functioss.php添加以下代码
functionbread_nav($sep='>'){echo'<divclass="col-md-12"><spanclass="glyphiconglyphicon-hometext-primary"></span>您当前的位置:<ahref="'.home_url().'"title="首页">首页</a>';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'</div>';}
2、前台调用
<?phpbread_nav();?>