国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > Wordpress > 正文

Wordpress如何將列表URL結(jié)尾添加”/” 如何自定義類型的URL的固

2024-09-07 00:52:17
字體:
供稿:網(wǎng)友

Wordpress如何將列表URL結(jié)尾添加”/” 如何自定義類型的URL的固定鏈接

我們來分享兩篇關(guān)于Wordpress的URL優(yōu)化技巧的教程,將分類、標(biāo)簽(Tag)等列表URL結(jié)尾添加”/”斜線呢,添加自定義類型的URL的固定鏈接。

Wordpress如何將分類、標(biāo)簽(Tag)等列表URL結(jié)尾添加”/”斜線呢?

WordPress強(qiáng)大之處就是在于,我們能想到的已經(jīng)實(shí)現(xiàn)了,只是我們不知道而已。

網(wǎng)上有很多解決方案,基本歸類為:

1. 通過Rewrite Rule 301跳轉(zhuǎn)實(shí)現(xiàn)(如果是已經(jīng)被收錄的URL可以的,但剛開始時(shí)不建議使用)

2. 通過修改wp-includes/canonical.php實(shí)現(xiàn)(升級(jí)時(shí)會(huì)被覆蓋,不建議)

3. 通過插件來實(shí)現(xiàn)

下面就說一下插件方法:

插件 Permalink Trailing Slash Fixer 已經(jīng)實(shí)現(xiàn)這個(gè)功能。

下載后查看代碼,你會(huì)發(fā)現(xiàn)只有幾行而已,而且內(nèi)部調(diào)用的是Wordpress自帶的方法實(shí)現(xiàn)的,并且不會(huì)出現(xiàn)301跳轉(zhuǎn),個(gè)人認(rèn)為非常理想的解決方案.

代碼如下:

  1. /** 
  2.  * Public staff only. 
  3.  */ 
  4. if (is_admin()) return
  5.  
  6. $permalink_structure = get_option('permalink_structure'); 
  7. if (!$permalink_structure || '/' === substr($permalink_structure, -1)) 
  8.     return
  9.  
  10. add_filter('user_trailingslashit''ppm_fixe_trailingslash', 10, 2); 
  11.  
  12. /** 
  13.  * Appends a trailing slash if it's missing in the permalink structure. 
  14.  * 
  15.  * Conditionally adds a trailing slash if the url type is not "single". 
  16.  * 
  17.  * @param string $url A URL with or without a trailing slash. 
  18.  * @param string $type The type of URL being considered (e.g. single, category, etc). 
  19.  * @return string The URL with the trailing slash fixed. 
  20.  */ 
  21. function ppm_fixe_trailingslash($url$type
  22.     if ('single' === $type
  23.         return $url
  24.  
  25.     return trailingslashit($url); 
  26.  
  27. /** 
  28.  * Public staff only. 
  29.  */ 
  30. if (is_admin()) return
  31.  
  32. $permalink_structure = get_option('permalink_structure'); 
  33. if (!$permalink_structure || '/' === substr($permalink_structure, -1)) 
  34.     return
  35.  
  36. add_filter('user_trailingslashit''ppm_fixe_trailingslash', 10, 2); 
  37.  
  38. /** 
  39.  * Appends a trailing slash if it's missing in the permalink structure. 
  40.  * 
  41.  * Conditionally adds a trailing slash if the url type is not "single". 
  42.  * 
  43.  * @param string $url A URL with or without a trailing slash. 
  44.  * @param string $type The type of URL being considered (e.g. single, category, etc). 
  45.  * @return string The URL with the trailing slash fixed. 
  46.  */ 
  47. function ppm_fixe_trailingslash($url$type
  48. //Vevb.com 
  49.     if ('single' === $type
  50.         return $url
  51.  
  52.     return trailingslashit($url); 

是不是很簡潔…..

如果你是使用的多站點(diǎn),而之前的站點(diǎn)SEO還不錯(cuò),現(xiàn)在準(zhǔn)備添加一新站點(diǎn)的話,以防相互有影響建議將上面代碼微調(diào)后加入到 模板目錄functoins.php中,或是使用插件,只在新的站點(diǎn)開戶插件功能,也是一樣的:

  1. if (!is_admin()) { 
  2.     function ppm_fixe_trailingslash($url$type
  3.     { 
  4.         $permalink_structure = get_option('permalink_structure'); 
  5.         if (!$permalink_structure || '/' === substr($permalink_structure, -1)) 
  6.         { 
  7.         return
  8.         } 
  9.         if ('single' === $type || 'page' === $type
  10.         { 
  11.         return $url
  12.         } 
  13.  
  14.         return trailingslashit($url); 
  15.     } 
  16.     add_filter('user_trailingslashit''ppm_fixe_trailingslash', 10, 2); 
  17.      
  18.  if (!is_admin()) { 
  19.     function ppm_fixe_trailingslash($url$type
  20.     { 
  21.         $permalink_structure = get_option('permalink_structure'); 
  22.         if (!$permalink_structure || '/' === substr($permalink_structure, -1)) 
  23.         { 
  24.         return
  25.         } 
  26.         if ('single' === $type || 'page' === $type
  27.         { 
  28.         return $url
  29.         } 
  30.  
  31.         return trailingslashit($url); 
  32.     } 
  33.     add_filter('user_trailingslashit''ppm_fixe_trailingslash', 10, 2); 

最后,最得要的是,讓新添回報(bào)URL Rules生效:進(jìn)入后臺(tái)?>Setting?>Permalinks刷新即可.

Wordpress如何添加自定義類型的URL的固定鏈接

由于業(yè)務(wù)需要,偶爾會(huì)添加一種頁面類型,而這種類型不存在于Wordpress已有的routers 固定鏈接中,那么就需要我們來添加一種自定義的URL固定鏈接.

比如:

我需要添加一種/health/A~Z/的URL規(guī)則,那么如何自定義呢?

大體實(shí)現(xiàn)如下:

1.固定鏈接URL定義為:/health/A/

2.實(shí)際URL為:index.php?category_name=&idx=

實(shí)際代碼如下:

# 找到模板目錄下面的functions.php 添加下面代碼:

  1. function add_query_vars($aVars) { 
  2.   $aVars[] = "idx";  
  3.   return $aVars
  4. // hook add_query_vars function into query_vars 
  5. add_filter('query_vars''add_query_vars'); 
  6.  
  7. function add_rewrite_rules($aRules) { 
  8.   $aNewRules = array('(health)/([^/]+)/?$' => 'index.php?category_name=$matches[1]&idx=$matches[2]'); 
  9.   $aRules = $aNewRules + $aRules
  10.   return $aRules
  11.  
  12. // hook add_rewrite_rules function into rewrite_rules_array 
  13. add_filter('rewrite_rules_array''add_rewrite_rules'); 
  14.  
  15. # 找到模板目錄下面的functions.php 添加下面代碼 
  16. function add_query_vars($aVars) { 
  17.   $aVars[] = "idx";  
  18.   return $aVars
  19. // hook add_query_vars function into query_vars 
  20. add_filter('query_vars''add_query_vars'); 
  21.  
  22. function add_rewrite_rules($aRules) { 
  23.   $aNewRules = array('(health)/([^/]+)/?$' => 'index.php?category_name=$matches[1]&idx=$matches[2]'); 
  24.   $aRules = $aNewRules + $aRules
  25.   return $aRules
  26.  
  27. // hook add_rewrite_rules function into rewrite_rules_array 
  28. add_filter('rewrite_rules_array''add_rewrite_rules'); 

到這里已經(jīng)實(shí)現(xiàn)自定義URL規(guī)則的固定鏈接。

那么如何獲取URL中的參數(shù)呢?其實(shí)知道這是Wordpress自身的路由實(shí)現(xiàn)就好明白了,既然是WP的路由,那么我們就像別的框架一樣使用WP的獲取URL的參數(shù)的訪問就可以了.

在需要獲取idx參數(shù)值的寂寞中,如下代碼就可以得到了:

  1. #打印所有參數(shù) 
  2. var_dump($wp_query->query_vars); 
  3. #取得idx參數(shù)和值 
  4. $idx = get_query_var('idx'); 
  5.  
  6. #打印所有參數(shù) 
  7. var_dump($wp_query->query_vars); 
  8. #取得idx參數(shù)和值 
  9. $idx = get_query_var('idx');

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 鹤庆县| 和田市| 土默特左旗| 若羌县| 淳安县| 吴堡县| 青田县| 宁河县| 博野县| 九台市| 瑞金市| 龙门县| 治多县| 襄樊市| 阳春市| 丽水市| 平凉市| 安龙县| 会泽县| 巨鹿县| 昌宁县| 禄劝| 临沭县| 专栏| 建瓯市| 海南省| 南澳县| 崇义县| 浠水县| 潮州市| 南平市| 深泽县| 闽侯县| 本溪市| 岐山县| 遂平县| 万宁市| 平遥县| 鸡东县| 临泉县| 桃源县|