網頁開發

WordPress AMP重導向

外掛

WordPress的AMP外掛很多,這邊列出兩個比較有名的:

每個外掛都各有各的優缺點。

問題

AMP版本與non-AMP版本的網頁網址不太一樣,AMP版本通常最後面會多出/amp/?amp=1來代表AMP網頁。

幾乎所有外掛都可以幫你把行動版訪客重新導向至AMP版網頁,但是我們希望當桌面版訪客瀏覽時也重新導向至non-AMP版網頁。

也就是說當有桌面版訪客點擊了AMP版網頁的網址,我們將他們重新導向至non-AMP版網頁。

這件事情在AMP for WP很容易,也是內建的其中一個功能,但是在官方的AMP外掛則沒有提供這個設定。

解決

所以如果想要達到目的,必須新增一段程式碼。我們必須在AMP網頁的佈景主題編輯器裡修改functions.php,新增此程式碼到檔案裡:

add_action('template_redirect', function(){
    if(!wp_is_mobile()){    // 偵測是否為桌面版訪客
        $amp_url = amp_get_current_url();    // $amp_url = 目前網址
        if($amp_url){
            $url = amp_remove_endpoint($amp_url);    // 把目前網址的endpoint移除
            wp_safe_redirect($url);    // 重新導向至非AMP版網頁
        }
    }
});

如果沒有用,檢查一下是不是快取在搞怪,建議是不要讓AMP網頁被快取。

發佈留言