Как преобразовать абсолютные ссылки в относительные на WordPress

Один из способов СЕО оптимизации сайта — работа с внутренними ссылками. Конечно, лично я сомневаюсь в эффективности этих телодвижений.  Однако, как утверждает ряд оптимизаторов, у относительных ссылок есть ряд преимуществ перед абсолютными.

Точки над и

Сначала разберёмся, что есть абсолютная, а что относительная ссылка. Проще говоря, абсолютная ссылка — ссылка с указанием протокола передачи данных и полного адреса сайта. Например, ссылка https://wp-store.ru — абсолютная. Относительная ссылка — ссылка ведущая на документ и зависит от его расположения.

Существуют два вида относительных ссылок:

  • С привязкой к домену, но без указания протокола (например: //site.ru)
  • Без домена (таким образом ссылка вида href=»/» будет вести на основную директорию)

Вот некоторые преимущества относительных ссылок:

  • Удобный переезд сайта с http на https. Если в перспективе планируется переезд вашего сайта на зашифрованный протокол, но в данный момент пока нет возможности это сделать, для быстрой и легкой миграции, относительные ссылки удобнее.
  • Более компактный код, а значит страничка грузится немного быстрее (правда выигрыш, составит всего лишь несколько байтов).
  • Если вы создаете сайт на основе CMS, в которой используется промежуточная среда с отдельным уникальным доменом, то он будет целиком дублироваться в этой промежуточной среде. Применение относительных ссылок позволяет одному и тому же сайту существовать, как на промежуточном, так и на рабочем домене. Это не только упрощает написание кода для разработчиков, но и позволяет сэкономить уйму времени.
  • Также считается, что страницы с относительными ссылками загружаются быстрее, чем c абсолютными URL. Хотя разница не будет заметной, она все же есть. Впрочем, при медленном сайте лучше сосредоточиться на оптимизации других параметров, чем на ссылках.

Конечно, относительные ссылки не лишены недостатков. Однако, если вы решились сделать сайт на WordPress с относительными ссылками, необходимо понять, как это реализовать.
к содержанию ↑

Поиск ссылок

Итак, чтобы преобразовать абсолютные ссылки в относительные, воспользуемся следующим хуками из ядра движка.

#1 В меню

function mytheme_change_nav_menu_items( $atts, $item ) {
	$atts['href'] = wp_make_link_relative ( $item->url );
	return $atts;
}
add_filter( 'nav_menu_link_attributes', 'mytheme_change_nav_menu_items', 10, 2 );

#2 Ссылки на изображения

function mytheme_change_src( $image, $attachment_id, $size, $icon ) {
	$image['0'] = wp_make_link_relative ( $image['0'] );
	//print_r( $image );
	return $image;
}
add_filter( 'wp_get_attachment_image_src', 'mytheme_change_src', 10, 4 );
function mytheme_change_term_link( $termlink, $term, $taxonomy ) {
	$termlink = wp_make_link_relative ( $termlink );
	//print_r( $termlink );
	return $termlink;
}
add_filter( 'term_link', 'mytheme_change_term_link', 10, 3 );

#4 Ссылки на скрипты

add_filter( 'script_loader_src', 'mytheme_change_scripts_url', 10, 2 );
function mytheme_change_scripts_url( $src, $handle ){
	$src = wp_make_link_relative( $src );
	return $src;
}

#5 Ссылки на стили

add_filter( 'style_loader_src', 'mytheme_change_styles_url', 10, 2 );
function mytheme_change_styles_url( $src, $handle ){
	$src = wp_make_link_relative( $src );
	return $src;
}

Приведённые фильтры нужно использовать вместе. Стоит отметить, что приведённые отрывки кода — не исчерпывающие, но позволяют изменить вывод большинства ссылок. Обратите внимание, что в тексте ваших записей вы не увидите никаких изменений.

Добавить комментарий

Made with ❤︎ by WP Store