不用插件,轻松实现 wordpress 面包屑导航

在开发独立WordPress主题时,确保面包屑导航的功能是核心需求。此项功能不仅优化了用户的导航体验,还便于搜索引擎有效解析网站架构。本文将探讨如何在无需额外插件支持的情况下,将这一实用特性集成至WordPress主题。

为什么面包屑导航这么重要?

面包屑导航,作为网站导引的关键,标示用户在页面的当前位置和追踪路径。类似在错综复杂的网络迷径中探索,面包屑导航乃引领回返的航标。对搜索引擎优化(SEO)而言,其地位无法取代,它助力搜索引擎蜘蛛精确掌握网站结构,进而提升网站在搜索结果中的能见度。

面包屑导航对于增强网站的专业性至关重要。若无此功能,访客将如同迷失方向者,体验不适。引入面包屑导航不仅优化网站效能,显著提高用户满意度。故而在WordPress主题中集成面包屑导航,无疑是明智的选择。

如何在不使用插件的情况下添加面包屑导航?

业已认识到在WordPress主题中融入面包屑导航的重要性。需明确指出,尽管丰富插件可供选用,但插件滥用可能降低网站加载效率,并威胁安全。本篇旨在探讨如何在未依赖插件的前提下,手工搭建面包屑导航体系。

在主题目录内定位至`functions.php`文件,此为核心文件,负责执行所有自定义功能。按指引代码置入该文件,主题即刻启用面包屑导航。操作流程清晰便捷。

功能非常完善的面包屑导航代码

目前,本代码段的特性完备,适合满足您的多数需求。请将此代码段粘贴至`functions.php`文件,其中包含的函数支持生成面包屑导航。

php
function the_breadcrumb() {
    if (!is_home()) {
        echo '<a href="';
function cmp_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 ('<a','<a itemprop="breadcrumb"', $cat_code ); } echo $before . '' . single_cat_title('', false) . '' . $after; } elseif ( is_day() ) { // 天 存档 echo '' . 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 ('<a','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="external nofollow" >' . get_the_title($page->ID) . ''; $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 '
'; } }

echo get_option('home');
echo '">';
bloginfo('name');
echo " » ";
In the context of category pages or solitary entries, {
the_category(' » ');
if (is_single()) {


echo " » ";
the_title();
}
} elseif (is_page()) {
}
}

本代码模块首要验证页面是否位于首屏,否则将生成指向首页的导航链接。随后,基于页面类型(如分类、文章或常规页面),自动构建匹配的路径导航。其卓越性能令人瞩目。

简洁版的面包屑导航代码

若代码复杂度令您感到不适或您只需要基础面包屑导航功能,请参考此简略版。该代码精简高效,亦能满足基本需求。

定义函数simple_breadcrumb_function。

echo '">首页 » ';

该代码继承自先前版本,针对冗余信息进行了精简处理,提升了文本的精炼程度,特别适用于简单面包屑路径导航需求。

前台调用面包屑导航

function bread_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 '
'; }

务必在主题文件中使用该函数。请于文章顶部或需展示面包屑导航的任何区域嵌入此代码段。

或者,如果你使用的是简洁版的代码,那么调用方式如下:

这样,你的面包屑导航就会在前台显示出来了。

总结

精通WordPress独立式面包屑导航的增设技巧,适用于高级或简洁版型,皆能显著提升网站的专业形象及用户满意度。速来实践,即刻体验!

问题

WordPress主题是否集成了面包屑导航?该功能对网站有何益处?敬请于评论区分享您的见解与实施经验。

THE END