|
默认情况下wordpress系统内输出的所有链接都是绝对链接,虽然百度官方的SEO文档中说过绝对链接更容易让蜘蛛抓取到内容,但实际上过多的绝对链接增加了网站的页面代码的大小从而使网站的加载速度变慢,导致出现更不利于SEO的状况。那么如何使wordpress函数所调用的链接输出相对链接呢?接下来小V就来教大家如何使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中调用绝对链接。 |
|