怎样在wordpress网站模板中,添加面包屑导航功能模块?(WordPress去掉URL链接中自带的category分类目录前缀)
文章目录
怎样在wordpress网站模板中,添加面包屑导航功能模块?
几乎在所有的wordpress网站中,我们都可以看到面包屑导航的身影(如下图)。面包屑导航,可以很方便地让我们了解到我们在这个wordpress网站中所在的位置,而且,我们还可以通过点击面包屑导航中的链接,进入到对应的页面。可见面包屑导航不仅让wordpress网站更加便利,而且提升了wordpress网站的用户体验。
那么,我们怎样在wordpress网站模板中添加面包屑导航呢?请随我来,我们可以通过2种方式来实现。具体操作,可以观看我在本站发表的《wordpress网站模板开发中,怎样添加面包屑导航功能?》视频教程。
面包屑导航的视频教程
方法一:每个wordpress模板页添加对应的面包屑导航代码。
也就是说,我们可以在wordpress模板中,想要显示面包屑导航的地方,添加面包屑导航代码就可以了。一般情况下,需要面包屑导航的地方有:wordpress网站的分类页模板、文章页模板、单页面模板、tag标签页模板、搜索页模板、作者页模板等等。
wordpress网站分类页模板面包屑导航代码:
wordpress网站文章页模板面包屑导航代码:
wordpress网站单页面模板面包屑导航代码:
这种方式的缺点:需要在wordpress网站的每个需要面包屑导航的模板中添加面包屑导航代码,后期维护比较麻烦。
方法二:在wordpress模板中创建面包屑导航的函数。
为了更加方便地在wordpress网站模板中调用面包屑导航,我们可以给面包屑导航创建一个函数,然后,只需要用到面包屑导航的页面直接调用这个函数就可以了。因为面包屑导航会在wordpress网站的很多页面中使用,所以,我们在函数中要做不同页面的判断,根据不同的页面调用不同的面包屑导航。
在wordpress网站模板的functions.php文件中添加如下代码:
面包屑函数创建好了,就可以在wordpress网站模板中调用它,代码如下:
通过上面的2种方式,我们都可以为我们的wordpress网站模板添加面包屑导航的功能。当然,我们还可以通过wordpress的面包屑导航插件来实现,不过,这么简单的功能,没必要耗费系统资源来使用插件,纯代码更加有效。
如果还有什么疑问,欢迎在下面给我留言,我会尽快给你回复。谢谢参阅。
WordPress去掉URL链接中自带的category分类目录前缀
在使用WordPress博客程序搭建网站的时候,WordPress的分类存档是非常重要的页面,在网站树形结构中占据一席位置。但是默认情况下分类页面的URL地址中有一个 <strong class=\"red\">/category/</strong> 目录,这个目录不仅会影响用户体验还会影响网站整体的SEO效果(网站的目录层次越少越利于搜索引擎抓取,也越利于获取更好的排名)。所以为了网站的SEO效果,必须要去掉这个category二级目录,降低目录的深度。那么怎么去除wordpress自带的一层category目录呢?
WordPress去除分类目录URL路径中category分类目录前缀的四种办法:
方法一:在后台“固定链接”中设置“分类目录前缀”
登录你的Wordpress后台,打开 “设置 —》固定链接 —》” 页面。在 “可选” 设置项里的 “分类目录前缀” 里输入半角字符: “.” ,如下图所示,保存后即可去掉分类前缀category。
优点:设置简单,老少皆宜。适用于初建成的博客,或刚打算使用固定链接 /永久链接的博客。用不着修改代码,升级之时没有顾虑;用不着插件,不会增加运行负担。
缺点:原链接无法打开,出现404错误。被搜索引擎收录良好,或分类链接有较多外链链入的博客,可要万分小心了。不要因为操作简单、省时省力而损失了大量外链及权重。因为它并没有插件所支持的自动 301 跳转,且原地址仍可以访问。(例如:www.aszhi.com/seo/与www.aszhi.com/category/seo/都是可以访问并且内容完全一样)这会造成谷歌网站管理员工具里提到的,重复的标题。而且这种钻官方代码空子的方法难保会一直有效下去。
方法二:借助WordPress插件实现
(1)使用 WP No Category Base 插件,在后台插件管理中搜索“WP No Category Base”(如下图所示),然后下载安装。此插件主要是为去除固定链接中分类链接里的category而开发出来的一款wordpress插件。
安装启用此插件后,对原来的分类地址做了301重定向跳转,对SEO优化有好处,把降权风险降到最低。
(2)使用 No category parents 插件,在后台插件管理中搜索“No category parents”,然后下载安装。此插件不仅能去掉分类链接的前缀category,还能去掉父分类parent-category。例如:将“/category/parent-category/my-category/”换成“/my-category/” 。
优点:安装简单,老少皆宜。无论是初建成的博客,还是正打算使用固定链接/永久链接的博客,还是被搜索引擎收录良好的博客。用不着修改代码,升级之时没有顾虑。使用301跳转,把原链接进行跳转。最大程度符合seo优化,防止搜索引擎降权,防止原链接打不开。
不足:插件或许会造成空间负担。这里不说是缺点,就是因为,造成的“空间负担”微乎其微,不应该是缺点。比较在意的就不用,无所谓推荐使用。
方法三:纯代码实现
纯代码去掉WordPress分类目录链接中的category分类标志,也非常简单,只需要将以下代码放在 当前主题的模板函数文件functions.php 文件最后一个?>前面即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
// 去掉链接中category分类标志 add_action( \'load-themes.php\', \'no_category_base_refresh_rules\'); add_action(\'created_category\', \'no_category_base_refresh_rules\'); add_action(\'edited_category\', \'no_category_base_refresh_rules\'); add_action(\'delete_category\', \'no_category_base_refresh_rules\'); function no_category_base_refresh_rules() { global $wp_rewrite; $wp_rewrite -> flush_rules(); } // register_deactivation_hook(__FILE__, \'no_category_base_deactivate\'); // function no_category_base_deactivate() { // remove_filter(\'category_rewrite_rules\', \'no_category_base_rewrite_rules\'); // // We dont want to insert our custom rules again // no_category_base_refresh_rules(); // } // Remove category base add_action(\'init\', \'no_category_base_permastruct\'); function no_category_base_permastruct() { global $wp_rewrite, $wp_version; if (version_compare($wp_version, \'3.4\', \' extra_permastructs[\'category\'][0] = \'%category%\'; } else { $wp_rewrite -> extra_permastructs[\'category\'][\'struct\'] = \'%category%\'; } } // Add our custom category rewrite rules add_filter(\'category_rewrite_rules\', \'no_category_base_rewrite_rules\'); function no_category_base_rewrite_rules($category_rewrite) { //var_dump($category_rewrite); // For Debugging $category_rewrite = array(); $categories = get_categories(array(\'hide_empty\' => false)); foreach ($categories as $category) { $category_nicename = $category -> slug; if ($category -> parent == $category -> cat_ID)// recursive recursion $category -> parent = 0; elseif ($category -> parent != 0) $category_nicename = get_category_parents($category -> parent, false, \'/\', true) . $category_nicename; $category_rewrite[\'(\' . $category_nicename . \')/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$\'] = \'index.php?category_name=$matches[1]&feed=$matches[2]\'; $category_rewrite[\'(\' . $category_nicename . \')/page/?([0-9]{1,})/?$\'] = \'index.php?category_name=$matches[1]&paged=$matches[2]\'; $category_rewrite[\'(\' . $category_nicename . \')/?$\'] = \'index.php?category_name=$matches[1]\'; } // Redirect support from Old Category Base global $wp_rewrite; $old_category_base = get_option(\'category_base\') ? get_option(\'category_base\') : \'category\'; $old_category_base = trim($old_category_base, \'/\'); $category_rewrite[$old_category_base . \'/(.*)$\'] = \'index.php?category_redirect=$matches[1]\'; //var_dump($category_rewrite); // For Debugging return $category_rewrite; } // Add \'category_redirect\' query variable add_filter(\'query_vars\', \'no_category_base_query_vars\'); function no_category_base_query_vars($public_query_vars) { $public_query_vars[] = \'category_redirect\'; return $public_query_vars; } // Redirect if \'category_redirect\' is set add_filter(\'request\', \'no_category_base_request\'); function no_category_base_request($query_vars) { //print_r($query_vars); // For Debugging if (isset($query_vars[\'category_redirect\'])) { $catlink = trailingslashit(get_option(\'home\')) . user_trailingslashit($query_vars[\'category_redirect\'], \'category\'); status_header(301); header(\"Location: $catlink\"); exit(); } return $query_vars; } |
优点:仅加入一段代码,性能影响忽略不计。适用于对代码稍熟悉的博客。
缺点:修改代码,博客主题升级还要修改。
1. 带 [亲测] 说明源码已经被站长亲测过!
2. 下载后的源码请在24小时内删除,仅供学习用途!
3. 分享目的仅供大家学习和交流,请不要用于商业用途!
4. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
5. 本站所有资源来源于站长上传和网络,如有侵权请邮件联系站长!
6. 没带 [亲测] 代表站长时间紧促,站长会保持每天更新 [亲测] 源码 !
7. 盗版ripro用户购买ripro美化无担保,若设置不成功/不生效我们不支持退款!
8. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
9. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
10.如果您购买了某个产品,而我们还没来得及更新,请联系站长或留言催更,谢谢理解 !
GG资源网 » 怎样在wordpress网站模板中,添加面包屑导航功能模块?(WordPress去掉URL链接中自带的category分类目录前缀)