WordPress簡單實現站內相對鏈接路徑

前言

通過這篇文章我們可以連結到什麼情況下適合用相對連結,什麼時候用絕對鏈接比較合適! 下面我們就來看看如何通過簡單的幾行代碼來實現WP站內相對連結的功能的!

方法分析

要想簡單的實現相對連結無非就是找到代碼的源頭,然後再源頭進行匹配和替換,那麼對於WP來說,我們的源頭是在常規裡面填寫的網址,但是這個我們是不能去修改的,值得慶幸的是WP在一般情況下是沒有直接調用常規裡面設置的網址的,而是通過一個home_url() 的函數進行應用,我們要做的就是在home_url() 這的函數的返回值中進行匹配和替換,如果跟網站功能變數名稱相同那麼就把功能變數名稱去除,如果不同則直接返回網址,這樣在相容附件伺服器的同時實現了站內相對連結的功能!

實現代碼

實現相對連結功能,我們需要用到home_url() 函數中提供的一個home_url過濾器,和WP內置的wp_make_link_relative函數來匹配替換跟主域相同的功能變數名稱:

add_filter( ‘home_url’, ‘wp_make_link_relative’ );

這個時候我們可能會發現一些問題,sitemap與feed中也調用相對鏈接那麼站外訪問和搜尋引擎抓取就會報錯,下面我們需要對上面的代碼進行優化:

add_filter( ‘home_url’, ‘cx_remove_root’ );
function cx_remove_root( $url ) {
    if(!is_feed() || !get_query_var( ‘sitemap’ )){
        $url = preg_replace( ‘|^(https?:)?//[^/]+(/?.*)|i’, ‘$2’, $url );
        return ‘/’ . ltrim( $url, ‘/’ );
    }else{
        return $url;
    }
}

注意事項

本教學只適用於代碼比較規範的主題,不保證相容所有主題。

教程中的代碼添加到主題的functions.php檔中即可。

溫馨提示:本文最後更新於2024-02-03 08:28:04,某些文章具有時效性,若有錯誤或已失效,請在下方留言或聯絡NGame
版權聲明 1 如果您喜歡本站,不花錢捐贈本站的方法>點廣告就是最好的方法~
2 有問題請聯繫站長加群版權下架/違規處理軟體打不開/閃退/報錯
3 這些資訊可能會説明你: 下載幫助 | 報毒說明 | 進站必看
4 本站資源存儲在OneDrive網盤,如發現連結失效,請聯繫我更新
5 本站資源均來源於網路,只作學習交流使用,版權歸原作者所有,請於下載后24小時內刪除,若作商業用途,請聯繫原作者授權,由於未授權發生的侵權行為與本站無關,若本站侵犯了您的權益,請聯繫本站刪除,郵箱: ngame@ningyungame.com
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索