默認情況下 WordPress 系統內輸出的所有鏈接都是絕對鏈接,雖然百度官方的 SEO 文檔中説過絕對鏈接更容易讓蜘蛛抓取到內容,但實際上過多的絕對鏈接增加了網站的頁面代碼的大小從而使網站的加載速度變慢,導致出現更不利於 SEO 的狀況。那麼如何使 WordPress 函數所調用的鏈接輸出相對鏈接呢?接下來小編就來教大家如何使 WordPress 調用相對鏈接。
一、使用/替換 home_url()
function rw_remove_root( $url ) {
$url = str_replace( home_url(), '', $url );
return '/' . ltrim( $url, '/' );
}
二、那麼如何來調用其他類型的相對鏈接呢?我們可以使用以下代碼:
add_filter( 'post_link', 'wp_make_link_relative' ); add_filter( 'post_type_link', 'wp_make_link_relative' ); add_filter( 'page_link', 'wp_make_link_relative' ); add_filter( 'attachment_link', 'wp_make_link_relative' ); add_filter( 'get_shortlink', 'wp_make_link_relative' ); add_filter( 'get_pagenum_link', 'wp_make_link_relative' ); add_filter( 'get_comments_pagenum_link', 'wp_make_link_relative' ); add_filter( 'term_link', 'wp_make_link_relative' ); add_filter( 'search_link', 'wp_make_link_relative' ); add_filter( 'post_type_archive_link', 'wp_make_link_relative' ); add_filter( 'day_link', 'wp_make_link_relative' ); add_filter( 'month_link', 'wp_make_link_relative' ); add_filter( 'year_link', 'wp_make_link_relative' );
以上代碼都只需加入到 functions.php 文件中即可。
2013 年 7 月 25 日更新:請勿使用此文中的代碼!會造成 sitemap 和 feed 中都是相對鏈接,搜索引擎抓取時會嚴重報錯,無法抓取 sitemap 中的鏈接!
2013 年 7 月 26 號更新,解決 sitemap 與 feed 中調用相對鏈接問題。
add_action( 'template_redirect', 'rw_relative_urls' );
function rw_relative_urls() {
if ( is_feed() || get_query_var( 'sitemap' ) ) //判斷是否為 feed 頁面或者 sitemap 頁面
return;
$filters = array(
'post_link',
'post_type_link',
'page_link',
'attachment_link',
'get_shortlink',
'post_type_archive_link',
'get_pagenum_link',
'get_comments_pagenum_link',
'term_link',
'search_link',
'day_link',
'month_link',
'year_link',
);
foreach ( $filters as $filter )
{
add_filter( $filter, 'wp_make_link_relative' );
}
}
使用 26 號更新的代碼後即可實現在網站調用相對鏈接,sitemap 與 feed 中調用絕對鏈接。