23.06.2013

Убрать link rel=shortlink из WordPress

Обновился WordPress. После установки опять придётся убирать shortlink, чтобы не ругался любимый Яндекс. Как не настраивай ЧПУ, его робот индексирует ссылки методом "научного тыка". Почему нельзя нельзя научить его учитывать только link rel=’canonical’ остаётся загадкой. Туповат наверное.

В некоторых темах помогает такой вариант
В файле function.php вставить одну строчку:
remove_action( ‘wp_head’, ‘wp_shortlink_wp_head’, 10, 0 );
Мне не помогло. Выдавалось 2 урла,  ’canonical’ и ’shortlink’. Да и в ответе сервера он присутствовал.

Пришлось перейти к следующему варианту.
Теперь открываем файл  wp-includes/link-template.php. Он довольно большой и поиски в нём заняли некоторое время. Для получения нужного результата пришлось удалить вот эти строчки:


2379  function wp_shortlink_wp_head() {
    $shortlink = wp_get_shortlink( 0, 'query' );

    if ( empty( $shortlink ) )
        return;

    echo "<link rel='shortlink' href='" . esc_url( $shortlink ) . "' />\n";
}

Всё, что было связано с выводом этого зловредного урла  в head.
Яше понравилось, а Гоша и так всё умел.