自動外鏈工具 在線排版工具 搜索引擎提交入口 wordpress主題推薦 批量打開網址工具 【老域名購買】 思享SEO導航 【網站合作】

wordpress去除url中category的方法大全

文章目錄
  1. functions.php添加代碼去除
  2. 修改Wordpress函數去除
  3. WP No Category Base插件去除
  4. 修改固定鏈接設置去除

使用過wordpress的朋友應該都知道,默認的分類URL中是有一層category目錄的。其實這對一般的使用并不會有太大的影響,并且從SEO方面考慮,如果是根據邏輯結構分配權重,也不會有太大影響。但對于思享來說,多一個沒多大意義的category目錄,怎么看都不舒服。所以思享包括絕大多數站長都會選擇簡化URL,將category去掉。

wordpress

functions.php添加代碼去除

  1. //去除分類標志代碼
  2. add_action(?'load-themes.php',??'no_category_base_refresh_rules');
  3. add_action('created_category',?'no_category_base_refresh_rules');
  4. add_action('edited_category',?'no_category_base_refresh_rules');
  5. add_action('delete_category',?'no_category_base_refresh_rules');
  6. function?no_category_base_refresh_rules()?{
  7. ????global?$wp_rewrite;
  8. ????$wp_rewrite?->?flush_rules();
  9. }
  10. //?register_deactivation_hook(__FILE__,?'no_category_base_deactivate');???
  11. //?function?no_category_base_deactivate()?{???
  12. //??remove_filter('category_rewrite_rules',?'no_category_base_rewrite_rules');???
  13. //??//?We?don't?want?to?insert?our?custom?rules?again???
  14. //??no_category_base_refresh_rules();???
  15. //?}???
  16. //?Remove?category?base???
  17. add_action('init',?'no_category_base_permastruct');
  18. function?no_category_base_permastruct()?{
  19. ????global?$wp_rewrite,?$wp_version;
  20. ????if?(version_compare($wp_version,?'3.4',?'<'))?{
  21. ????????//?For?pre-3.4?support???
  22. ????????$wp_rewrite?->?extra_permastructs['category'][0]?=?'%category%';
  23. ????}?else?{
  24. ????????$wp_rewrite?->?extra_permastructs['category']['struct']?=?'%category%';
  25. ????}
  26. }
  27. //?Add?our?custom?category?rewrite?rules???
  28. add_filter('category_rewrite_rules',?'no_category_base_rewrite_rules');
  29. function?no_category_base_rewrite_rules($category_rewrite)?{
  30. ????//var_dump($category_rewrite);?//?For?Debugging???
  31. ????$category_rewrite?=?array();
  32. ????$categories?=?get_categories(array('hide_empty'?=>?false));
  33. ????foreach?($categories?as?$category)?{
  34. ????????$category_nicename?=?$category?->?slug;
  35. ????????if?($category?->?parent?==?$category?->?cat_ID)//?recursive?recursion???
  36. ????????????$category?->?parent?=?0;
  37. ????????elseif?($category?->?parent?!=?0)
  38. ????????????$category_nicename?=?get_category_parents($category?->?parent,?false,?'/',?true)?.?$category_nicename;
  39. ????????$category_rewrite['('?.?$category_nicename?.?')/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$']?=?'index.php?category_name=$matches[1]&feed=$matches[2]';
  40. ????????$category_rewrite['('?.?$category_nicename?.?')/page/?([0-9]{1,})/?$']?=?'index.php?category_name=$matches[1]&paged=$matches[2]';
  41. ????????$category_rewrite['('?.?$category_nicename?.?')/?$']?=?'index.php?category_name=$matches[1]';
  42. ????}
  43. ????//?Redirect?support?from?Old?Category?Base???
  44. ????global?$wp_rewrite;
  45. ????$old_category_base?=?get_option('category_base')???get_option('category_base')?:?'category';
  46. ????$old_category_base?=?trim($old_category_base,?'/');
  47. ????$category_rewrite[$old_category_base?.?'/(.*)$']?=?'index.php?category_redirect=$matches[1]';
  48. ????//var_dump($category_rewrite);?//?For?Debugging???
  49. ????return?$category_rewrite;
  50. }
  51. //?Add?'category_redirect'?query?variable???
  52. add_filter('query_vars',?'no_category_base_query_vars');
  53. function?no_category_base_query_vars($public_query_vars)?{
  54. ????$public_query_vars[]?=?'category_redirect';
  55. ????return?$public_query_vars;
  56. }
  57. //?Redirect?if?'category_redirect'?is?set???
  58. add_filter('request',?'no_category_base_request');
  59. function?no_category_base_request($query_vars)?{
  60. ????//print_r($query_vars);?//?For?Debugging???
  61. ????if?(isset($query_vars['category_redirect']))?{
  62. ????????$catlink?=?trailingslashit(get_option('home'))?.?user_trailingslashit($query_vars['category_redirect'],?'category');
  63. ????????status_header(301);
  64. ????????header("Location:?$catlink");
  65. ????????exit();
  66. ????}
  67. ????return?$query_vars;
  68. }
  69. //去除分類標志代碼結束

思享目前就是用的這種方法,好處就是可以不受wordpress版本升級的影響,帶category會301重定向到不帶的URL。至于是否需要主機支持,我這個小白就不太清楚了,反正我的是支持301并OK的

修改Wordpress函數去除

修改目標文件:wp-includes文件夾下的category-template.php

修改函數:

搜索(get_category_link()函數里)的以下代碼:

  1. $catlink =?$wp_rewrite->get_category_permastruct();

在其后,另起一行加入:$catlink = str_replace('/category' , '' , $catlink);代碼作用是,使用字符串替換函數,把獲取分類鏈接函數的分類鏈接里的/category替換掉。達到去掉分類鏈接前綴/category的目的。

 

優點:僅加入一段代碼,性能影響忽略不計。適用于對代碼稍熟悉的博客。

缺點:修改代碼,博客升級還要修改。且原地址仍可以訪問。同樣一個頁面有兩個URL,不利于SEO

WP No Category Base插件去除

優點:安裝簡單,老少皆宜。無論是初建成的博客,還是正打算使用固定鏈接 /永久鏈接的博客,還是被搜索引擎收錄良好的博客。用不著修改代碼,升級之時沒有顧慮。使用 301跳轉,把原鏈接進行跳轉。最大程度防止搜索引擎降權,防止原鏈接打不開。

不足:插件或許會造成空間負擔。這里不說是缺點,就是因為,造成的“空間負擔”微乎其微,不應該是缺點。比較在意的就不用,推薦使用。

修改固定鏈接設置去除

登錄你的Wordpress后臺,步驟:

WordPress后臺——設置——固定鏈接——分類目錄前綴里輸入半角字符: “.”

然后保存即可去掉分類前綴category。

優點:設置簡單,老少皆宜。適用于初建成的博客,或剛打算使用固定鏈接 /永久鏈接的博客。用不著修改代碼,升級之時沒有顧慮;用不著插件,不會增加運行負擔。

缺點:原鏈接無法打開,出現404錯誤。被搜索引擎收錄良好,或分類鏈接有較多外鏈鏈入的博客,可要萬分小心了。不要因為操作簡單、省時省力而損失了大量外鏈及權重。除此之外,思享在添加canonical標簽的時候,發現目錄調用出來的地址是:"http://www.nhkkdh.live/./seojichu"。總的來說,還是不推薦使用這種方法。

來源:本文由思享SEO博客原創撰寫,歡迎分享本文,轉載請保留出處和鏈接!
seo培訓評論廣告

搶沙發

昵稱*

郵箱*

網址

七乐彩选号技巧