!
也想出现在这里? 联系我们
广告位

WordPress 添加面包屑导航的二种方法

面包屑导航,简单的说它就是提供给用户回溯到网站首页或入口页面的一条快速路径。今天创客分享一下 WordPress 添加面包屑导航的三种方法,希望对大家有所帮助,原文参考自园子博客。

面包屑定义:

面包屑通常出现在页面顶部,一般会位于标题或页头的下方。它提供给用户返回之前任何一个页面的链接(这些链接也是能到达当前页面的路径),在层级架构中通常是这个页面的父级页面。也可以这样理解,面包屑提供给用户回溯到网站首页或入口页面的一条快速路径,它们绝大部分看起来就像这样:首页→分类页→次级分类页。如下图所示:

面包屑好处:

1.可以提供多路径的交互方式,方便用户跳转到其它页面。在页面及分类多的网站中尤其有用。

2.面包屑导航信息结构对于网站的 SEO 也有着大的好处,它可以更多的强调网站关键字,扩大关键字的范围,从而达到更好的优化目的。

3.它从一个侧面展示了该信息集合的信息结构和集合方式,可以让用户在最快的时间之内找到需要的东西。

方案一:

把以下代码直接添加到你想出现面包屑导航的位置,比如 header.php 里面,也可以放在 single.php 页面的导航标题上面,你有可能需要添加的页面可能有:archive.php、archives.php、links.php、page.php。

  1. <div class="mbx-dh">
  2. 当前位置:<a href="<?php bloginfo('url'); ?>"><?php bloginfo('name'); ?></a> &raquo;
  3. <?php
  4. if( is_single() ){
  5. $categorys = get_the_category();
  6. $category = $categorys[0];
  7. echo( get_category_parents($category->term_id,true,' &raquo; ') );
  8. the_title();
  9. } elseif ( is_page() ){
  10. the_title();
  11. } elseif ( is_category() ){
  12. single_cat_title();
  13. } elseif ( is_tag() ){
  14. single_tag_title();
  15. } elseif ( is_day() ){
  16. the_time('Y年Fj日');
  17. } elseif ( is_month() ){
  18. the_time('Y年F');
  19. } elseif ( is_year() ){
  20. the_time('Y年');
  21. } elseif ( is_search() ){
  22. echo $s.' 的搜索结果';
  23. }
  24. ?>
  25. </div>

方案二:

首先把以下代码添加到主题的 functions.php 文件中

  1. function dimox_breadcrumbs() {
  2. $delimiter = '&raquo;';
  3. $name = 'Home'; //text for the 'Home' link
  4. $currentBefore = '<span>';
  5. $currentAfter = '</span>';
  6. if ( !is_home() && !is_front_page() || is_paged() ) {
  7. echo '<div id="crumbs">';
  8. global $post;
  9. $home = get_bloginfo('url');
  10. echo '' . $name . ' ' . $delimiter . ' ';
  11. if ( is_category() ) {
  12. global $wp_query;
  13. $cat_obj = $wp_query->get_queried_object();
  14. $thisCat = $cat_obj->term_id;
  15. $thisCat = get_category($thisCat);
  16. $parentCat = get_category($thisCat->parent);
  17. if ($thisCat->parent != 0) echo(get_category_parents($parentCat, TRUE, ' ' . $delimiter . ' '));
  18. echo $currentBefore . 'Archive by category '';
  19. single_cat_title();
  20. echo ''' . $currentAfter;
  21. } elseif ( is_day() ) {
  22. echo '' . get_the_time('Y') . ' ' . $delimiter . ' ';
  23. echo '' . get_the_time('F') . ' ' . $delimiter . ' ';
  24. echo $currentBefore . get_the_time('d') . $currentAfter;
  25. } elseif ( is_month() ) {
  26. echo '' . get_the_time('Y') . ' ' . $delimiter . ' ';
  27. echo $currentBefore . get_the_time('F') . $currentAfter;
  28. } elseif ( is_year() ) {
  29. echo $currentBefore . get_the_time('Y') . $currentAfter;
  30. } elseif ( is_single() ) {
  31. $cat = get_the_category(); $cat = $cat[0];
  32. echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
  33. echo $currentBefore;
  34. the_title();
  35. echo $currentAfter;
  36. } elseif ( is_page() && !$post->post_parent ) {
  37. echo $currentBefore;
  38. the_title();
  39. echo $currentAfter;
  40. } elseif ( is_page() && $post->post_parent ) {
  41. $parent_id = $post->post_parent;
  42. $breadcrumbs = array();
  43. while ($parent_id) {
  44. $page = get_page($parent_id);
  45. $breadcrumbs[] = '' . get_the_title($page->ID) . '';
  46. $parent_id = $page->post_parent;
  47. }
  48. $breadcrumbs = array_reverse($breadcrumbs);
  49. foreach ($breadcrumbs as $crumb) echo $crumb . ' ' . $delimiter . ' ';
  50. echo $currentBefore;
  51. the_title();
  52. echo $currentAfter;
  53. } elseif ( is_search() ) {
  54. echo $currentBefore . 'Search results for '' . get_search_query() . ''' . $currentAfter;
  55. } elseif ( is_tag() ) {
  56. echo $currentBefore . 'Posts tagged '';
  57. single_tag_title();
  58. echo ''' . $currentAfter;
  59. } elseif ( is_author() ) {
  60. global $author;
  61. $userdata = get_userdata($author);
  62. echo $currentBefore . 'Articles posted by ' . $userdata->display_name . $currentAfter;
  63. } elseif ( is_404() ) {
  64. echo $currentBefore . 'Error 404' . $currentAfter;
  65. }
  66. if ( get_query_var('paged') ) {
  67. if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
  68. echo __('Page') . ' ' . get_query_var('paged');
  69. if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
  70. }
  71. echo '</div>';
  72. }
  73. }

最后在适当的地方(如方法一中提到的几个文件)添加以下代码调用:

  1. <div class="mbx-dh">
  2. <?php if (function_exists('dimox_breadcrumbs')) dimox_breadcrumbs(); ?>
  3. </div>

如果想要美化下显示方式,直接通过添加 css 即可:

  1. .mbx-dh {padding: 5px 10px;}

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

代码禁用 Gutenberg(古腾堡) 编辑器

2024-3-27 11:38:12

WordPress教程

宝塔面板怎么给一个网站配置两个SSL证书

2024-3-30 3:45:23

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索