Модификация URL

В процессе работы с темой Roots Themerootstheme.com я заинтересовался ее возможностями по оптимизации и очистке кода – github.com/retlehs/roots/blob/master/doc/cleanup.md. В числе прочего, функции данной темы модифицируют абсолютные ссылки генерируемые WordPress в относительные для записей, страниц, меток и пр.

Есть несколько причин по которым это стоит делать. Одна из них – попытка соответствовать рекомендациям поисковиков к коду страниц, в частности – рекомендациям Googlegoogle-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml в части вида ссылок. Немаловажно и стремление к сокращению финального объема страницы и ускорению загрузки.

В указанной теме, один из используемых механизмов описан, достаточно давно – 25 октября 2010 года, тут – 456bereastreet.com/archive/201010/how_to_make_wordpress_urls_root_relative. Автор заметки описывает методику и приводит пример модификации ссылок. Я счел данное решение интересным и несколько дополнил его до вида:

function make_href_root_relative($input) {
    return preg_replace('!http(s)?://' . $_SERVER['SERVER_NAME'] . '/!', '/', $input);
}
function root_relative_permalinks($input) {
    return make_href_root_relative($input);
}
add_filter( 'the_permalink', 'root_relative_permalinks' );
add_filter( 'the_content_more_link', 'root_relative_permalinks' );
add_filter( 'previous_post_link', 'root_relative_permalinks' );
add_filter( 'next_post_link', 'root_relative_permalinks' );
add_filter( 'the_tags', 'root_relative_permalinks' );
add_filter( 'wp_tag_cloud', 'root_relative_permalinks' );

В результате применения данного кода через добавление его в файл functions.php используемой вами темы произойдет модификации абсолютных ссылок вида http://www.example.com/page-or-post-url/ к /page-or-post-url/ для ссылок записей, #more, предыдущая и следующая запись, меток записей и облака меток.

Опубликовано

Обратите внимание на предыдущие записи: