亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > CMS > Wordpress > 正文

WordPress固定鏈接修改成日期 作者的形式

2024-09-07 00:51:00
字體:
來源:轉載
供稿:網友

在烏徒幫修改了固定鏈接形式之后,把形式修改為/post/%post_id%/%postname%.html的形式,但是在這之后出現了一個問題,就算日期、作者頁面的URL前面多了一個post.例如/post/author/frustigor,/post/date/2014/04,這就很奇怪了,非常不好看,也沒有必要,我們想要的結果三/author/name和/date/year/month的形式,怎么來修理呢?這篇文章告訴你答案.

1.你必須了解的事

我們需要先了解這些事實:1.你必須通過編寫wordpress相關的php程序才能解決這個問題,2.你必須懂,這個問題關系著兩個東西,一個是鏈接,例如“2014年3月”這個邊側欄里面的鏈接必須修改為鏈接到不帶post的URL,另外一個是重寫,你得讓wordpress知道這個URL是用來調用月份的歸檔欄目的.

這兩個問題可是比較難懂的,你要是對wordpress的開發一竅不通,就直接往下拖,如果你對實現原理比較感興趣,就慢慢往下看.

2.如何修改鏈接,使點擊鏈接進入我們想要的URL.

這個其實沒有那么難,非常簡單,wordpress里面有一些hook,可以直接實現這個效果,主要是year_link、month_link、day_link、author_link,怎么用呢?代碼如下:

  1. add_filter('author_link','archive_rewrite_link', 99, 2); 
  2. add_filter('day_link','archive_rewrite_link', 99, 2); 
  3. add_filter('month_link','archive_rewrite_link', 99, 2); 
  4. add_filter('year_link','archive_rewrite_link', 99, 2); 
  5. function archive_rewrite_link($link){ 
  6.  global $wp_rewrite
  7.  $front = ltrim($wp_rewrite->front,'/'); 
  8.  $link = str_replace_first($front,'',$link); 
  9.  return $link

上面的str_replace_first是我自己寫的一個函數,往下拖,在全部代碼里面可以看到,非常簡潔的一段代碼,刷新看看,是不是這些鏈接都修改了,不過不要高興的太早,鏈接是修改過來了,但是不要高興的太早,是不是看到404了,對的,wordpress還根本不知道你已經修改過鏈接了.

3.為wordpress增加重寫規則,讓修改后的鏈接可以被正常訪問.

在wordpress里面有個叫rewrtie的全局類,這個類超級厲害,決定了你當前訪問的URL會顯示什么內容,如果你去看別人寫的有關這方面的文章,絕對會嚇死你,里面的邏輯非常復雜,不過,不用擔心,我們這里給一個極其簡單的代碼就可以實現.代碼如下:

  1. add_filter('author_rewrite_rules','archive_rewrite_rules',99); 
  2. add_filter('date_rewrite_rules','archive_rewrite_rules',99); 
  3. function archive_rewrite_rules($rules){ 
  4.  global $wp_rewrite
  5.  $front = ltrim($wp_rewrite->front,'/'); 
  6.     foreach($rules as $key => $value){ 
  7.         $newrules[str_replace_first($front,'',$key)] = $value
  8.     } 
  9.     return $newrules

有沒有發現,比前面一段代碼還短,其實道理也很簡單,在URL被解析之前,我們通過修改全局類$wp_rewrite變量,即可實現我們的目的,(這種方法非常投機取巧,因為對于wordpress本身而言,數據庫里面的重寫規則沒有變,不過,這有什么關系呢?我們可以實現自己的效果就好了)

4.完整的代碼

如果你是小白,把下面的代碼拷貝到你的主題目錄中的functions.php文件中,注意,一定要放在<?php ?>里面,代碼如下:

  1. // 替換字符串中第一次出現的子串 
  2. if(!function_exists('str_replace_first')): 
  3. function str_replace_first($find,$replace,$string){ 
  4.  $position = strpos($string,$find); 
  5.  if($position !== false){ 
  6.   $length = strlen($find);  
  7.   $string = substr_replace($string,$replace,$position,$length); 
  8.   return $string
  9.  }else
  10.   return false; 
  11.  } 
  12. }  
  13. endif
  14.  
  15. // 首先,修改網頁里面的鏈接 
  16. add_filter('author_link','archive_rewrite_link', 99, 2); 
  17. add_filter('day_link','archive_rewrite_link', 99, 2); 
  18. add_filter('month_link','archive_rewrite_link', 99, 2); 
  19. add_filter('year_link','archive_rewrite_link', 99, 2); 
  20. function archive_rewrite_link($link){ 
  21.  global $wp_rewrite
  22.  $front = ltrim($wp_rewrite->front,'/'); 
  23.  $link = str_replace_first($front,'',$link); 
  24.  return $link
  25.  
  26. // 接著,修改重寫規則 
  27. add_filter('author_rewrite_rules','archive_rewrite_rules',99); 
  28. add_filter('date_rewrite_rules','archive_rewrite_rules',99); 
  29. function archive_rewrite_rules($rules){ 
  30.  global $wp_rewrite
  31.  $front = ltrim($wp_rewrite->front,'/'); 
  32.     foreach($rules as $key => $value){ 
  33.         $newrules[str_replace_first($front,'',$key)] = $value
  34.     } 
  35.     return $newrules

這里也給了不少有關URL的思路,例如今后你可以通過修改$wp_rewrite來快速實現修改author頁面的前綴了,例如你可以把你的作者頁面修改為/user/user_id的形式,是不是很酷.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91美女福利视频高清| 欧美xxxx做受欧美| 亚洲精品中文字幕女同| 美女久久久久久久久久久| 4444欧美成人kkkk| 日韩中文字幕免费| 亚洲精品99久久久久| 精品国产老师黑色丝袜高跟鞋| 91精品久久久久久久久中文字幕| 亚洲国产私拍精品国模在线观看| 91精品国产91久久久久久久久| 欧美美最猛性xxxxxx| 45www国产精品网站| 国产精品丝袜久久久久久不卡| 在线观看国产精品淫| 久久久久久久久久久免费精品| 欧美中文字幕在线视频| 国产成人综合精品在线| 亚洲国产成人91精品| 国产精品电影久久久久电影网| 日韩欧美在线视频免费观看| 亚洲bt欧美bt日本bt| 久久中国妇女中文字幕| 欧美日韩国产中文精品字幕自在自线| 欧美一级片久久久久久久| 欧美专区日韩视频| 国产日韩欧美综合| 久久精彩免费视频| 亚洲黄色成人网| 亚洲福利视频网| 国产精品永久免费| 久久久精品免费| 久久精品色欧美aⅴ一区二区| 日韩欧美高清视频| 日韩视频免费大全中文字幕| 久久久久久国产精品| 国语自产精品视频在免费| 在线播放日韩欧美| 欧美福利视频在线观看| 久久久天堂国产精品女人| 日韩精品中文字幕在线播放| xxxxx成人.com| 亚洲福利在线看| 97色在线播放视频| 亚洲男人天堂久| 亚洲精品久久久久中文字幕二区| 欧美一级高清免费播放| 欧日韩在线观看| 亚洲精品欧美一区二区三区| 亚洲bt天天射| 在线免费观看羞羞视频一区二区| 日韩国产在线看| 成人免费观看49www在线观看| 亚洲精品国产成人| 欧美国产日韩免费| 国产精品视频最多的网站| 欧美日韩一区二区在线| 久久精品国亚洲| 国产美女精品视频| 成人福利视频网| 热re99久久精品国产66热| 亚洲永久免费观看| 国产精品久久久久久久美男| 91久久精品日日躁夜夜躁国产| 激情久久av一区av二区av三区| 欧美日韩在线看| 热久久视久久精品18亚洲精品| 97超碰蝌蚪网人人做人人爽| 国产精品视频资源| 日本一区二区在线免费播放| 午夜精品久久久久久久男人的天堂| 国产精品三级网站| 亚洲国产欧美在线成人app| 高清在线视频日韩欧美| www.亚洲免费视频| 国产精品夫妻激情| 在线视频亚洲欧美| 中国人与牲禽动交精品| 91亚洲国产成人精品性色| 欧美精品www在线观看| 全亚洲最色的网站在线观看| 26uuu亚洲伊人春色| 精品福利樱桃av导航| 91超碰caoporn97人人| 亚洲一区二区三区视频播放| 日韩亚洲欧美中文在线| 97精品在线视频| 亚洲自拍小视频| 日韩中文字幕av| 国产精品亚洲激情| 欧美中文在线观看国产| 精品久久香蕉国产线看观看gif| 国产日韩精品电影| 欧美精品在线视频观看| 伊人激情综合网| 国产日产久久高清欧美一区| 国产精品久久久av| 亚洲美女视频网站| 久久久久久综合网天天| 亚洲国产欧美日韩精品| 色樱桃影院亚洲精品影院| 久久国产精品影视| 日韩视频免费大全中文字幕| 亚洲第一区第二区| 欧美电影免费观看网站| 欧美激情亚洲综合一区| 日韩av一区在线| 久久免费精品日本久久中文字幕| 精品久久久久久久久久久久| 精品久久久久久国产| 欧美性xxxxx极品娇小| 亚洲第一视频网站| 亚洲电影第1页| 日韩免费在线视频| 亚洲欧美国产高清va在线播| 最新国产精品拍自在线播放| 国产一区二区三区18| 欧美xxxx18国产| 久久婷婷国产麻豆91天堂| 欧美性猛交99久久久久99按摩| 91久久久久久久一区二区| 中文字幕精品影院| 青青久久av北条麻妃海外网| 中文日韩在线视频| 91亚洲永久免费精品| 91精品国产综合久久男男| 国产999精品久久久| 亚洲第一区第二区| 日韩高清不卡av| 91网站在线看| 日韩精品视频在线| 国产啪精品视频网站| 亚洲一级黄色av| 中文字幕亚洲无线码a| 亚洲人永久免费| 国产精品自产拍在线观看| 久久精品国产亚洲7777| 久久久久久久成人| 91久久精品国产| 97久久超碰福利国产精品…| 亚洲免费av网址| 国产中文字幕91| 国产日本欧美一区| 色狠狠久久aa北条麻妃| 日韩av电影免费观看高清| 欧美午夜www高清视频| 九九九热精品免费视频观看网站| 亚洲精品国产精品自产a区红杏吧| 亚洲第一天堂av| 国产一区二区丝袜高跟鞋图片| www高清在线视频日韩欧美| 国产www精品| 欧美激情视频网址| 久久97久久97精品免视看| 一本大道久久加勒比香蕉| 日韩成人av网址| 国产美女精品视频免费观看| 一级做a爰片久久毛片美女图片| 欧美亚洲第一区| 欧美激情欧美狂野欧美精品| 国产精品88a∨| 日韩免费黄色av| 亚洲一区精品电影| 久久视频这里只有精品|