wordpress主題開發:創建自定義文章類型post-type(3)——如何設置固定鏈接

本文的主題是wordpress主題開發:創建自定義文章類型post-type(3)——如何設置固定鏈接。在前面的文章中,我們注冊過一個wordpress自定義文章類型——商城,也在後台實現的“商城”模塊菜單的展示,在前台的文章也能正常展示。但是,前台的文章地址欄的地址不好看,因爲我們的文章标題基本都是中文的,所以代碼翻譯後會很長,有點難看,如下圖:

這樣的地址,看上去非常不美觀,也不利于網站的SEO。因爲,register_post_type()默認展示地址鏈接樣式是‘post-slug/postname’,也就是自定義文章類型名+文章名,而我們的文章名是中文,所以就造成了這種難看的地址鏈接。

要想讓這個地址鏈接變好看,而且有利于SEO,我們就要修改它的固定鏈接。在register_post_type()函數中有固定鏈接相關的參數有rewrite和slug,我們要用到這2個參數(詳見上一章的介紹)。出現上圖中這種難看的地址是因爲我們在wordpress後台設置了固定鏈接,而在register_post_type()注冊自定義文章類型時rewrite設置成true,就會是“自定義文章類型名+文章名”的地址,因爲register_post_type()默認展示地址鏈接樣式是‘post-slug/postname’,也就是自定義文章類型名+文章名,所以我們要對它進行修改,也就是修改這個固定鏈接的樣式,如:讓固定鏈接顯示文章的ID号,而不是文章名。如下:

http://xxxxxxxxxx.com/book/33.html

那麽怎樣實現呢?下面這段代碼就是修改自定義文章類型的固定鏈接格式的代碼,将它放到主題的functions.php文件中就可以了:

  1. add_filter(‘post_type_link’, ‘custom_book_link’, 1, 3);
  2. function custom_book_link( $link$post = 0 ){
  3. if ( $post->post_type == ‘book’ ){
  4. return home_url( ‘book/’ . $post->ID .’.html’ );
  5. else {
  6. return $link;
  7. }
  8. }
  9. add_action( ‘init’, ‘custom_book_rewrites_init’ );
  10. function custom_book_rewrites_init(){
  11. add_rewrite_rule(
  12. ‘book/([0-9]+)?.html$’,
  13. ‘index.php?post_type=book&p=$matches[1]’,
  14. ‘top’ );
  15. }

效果如下圖:

上面,這段代碼隻适應一個自定義文章類型時可用,如果你注冊了多個自定義文章分類時,就不适用了。方法總比問題多,下面就是解決之道:

  1. $mytypes = array(
  2. ‘type1’ => ‘slug1’,
  3. ‘type2’ => ‘slug2’,
  4. ‘type3’ => ‘slug3’
  5. );
  6. add_filter(‘post_type_link’, ‘custom_book_link’, 1, 3);
  7. function custom_book_link( $link$post = 0 ){
  8. global $mytypes;
  9. if ( in_array( $post->post_type,array_keys($mytypes) ) ){
  10. return home_url( $mytypes[$post->post_type].’/’ . $post->ID .’.html’ );
  11. else {
  12. return $link;
  13. }
  14. }
  15. add_action( ‘init’, ‘custom_book_rewrites_init’ );
  16. function custom_book_rewrites_init(){
  17. global $mytypes;
  18. foreach$mytypes as $k => $v ) {
  19. add_rewrite_rule(
  20. $v.’/([0-9]+)?.html$’,
  21. ‘index.php?post_type=’.$k.’&p=$matches[1]’,
  22. ‘top’ );
  23. }
  24. }

上面的代碼中,有3個自定義文章類型,它們分别是slug1、slug2、slug3,當然,這個名稱要跟你的注冊時原名稱要一至哦,slug1、slug2、slug3分别爲固定鏈接的前綴。

好了,如何修改wordpress自定義文章類型的固定鏈接樣式就講完了,後面還會陸續介紹相關内容。

常見問題
源碼、模闆插件上傳安裝提示錯誤怎麽辦?
1、本站在打包Wordpress插件或者模闆的時候,一般會将官方文檔、官方申明、已經其他文件一起打包,因此,大部分插件模闆在安裝前需要解壓縮。 2、強烈推薦服務器使用linux系統,環境推薦 apache2+php+mysql,别給我說你還是你還是使用的windows服務器。。。。
購買後無法下載或者提取碼錯誤怎麽辦?
請聯系客服QQ:125252828 或者微信:dobunkan,由于騷擾信息過多,加好友時請說明原由!
小白建站啥都不會怎麽辦?
請與客服聯系,溝通具體的技術支持。由于搭建環境、調試程序需要花費一些時間,可能會收取一些費用。
怎樣催促站長更新?
直接微信或者QQ聯系本站客服,提供最新版本号以及軟件名稱,客服會在第一時間更新,如果超過2-3年未更新的請先聯系站長後再确認是否需要下載。
爲什麽打開鏈接看不到最新版本?
因爲網盤默認是按名稱排序,最新版本不一定會排在第一個,請打開鏈接後點擊右上角的“修改日期”,這時候更新列表就會按更新日期排序了。
原文鏈接:https://www.dobunkan.com/tools/26527,轉載請注明出處。
0

評論0

請先
顯示驗證碼
沒有賬号?注冊  忘記密碼?

社交賬号快速登錄

學課技術網歡迎您的加入!