Скрываем версию WordPress и удаляем ненужные элементы wp_head

Если посмотреть исходный код чистой темы на WordPress, то можно заметить, что в теге <head> выводится кучу ненужной ерунды — вот её мы и уберем, тем самым сделаем небольшую оптимизацию WordPress header.

Оказывается, большинство ненужных элементов реализуется с помощью функции wp_head(). Но просто так, в html коде, её удалять не рекомендуется, потому как это негативно скажется на работе блога. Нам нужно удалить лишь некоторые элементы, чем мы и займёмся.

Прежде всего, уберем вывод версии вордпресс. В исходном коде это выглядит так:

<meta name="generator" content="WordPress 3.2.1" />

Зачем? Как правило, разработчики CMS при обновлении рассказывают что нового добавили в новую версию, какие проблемы были в старых версиях. А зная текущую версию движка сайта, хакеру проще взломать его. Доброжелателей хватает.

Так что не будем версией светить. Для этого необходимо добавить одну строчку в файле functions.php, который находится в папке с вашей темой:

<?php remove_action ('wp_head', 'wp_generator'); ?>

Через функцию wp_head также выводятся и другие ненужные мета-теги. Удаляем их с помощью этого кода (добавляем в тот же файл functions.php):

<?php
remove_action( 'wp_head', 'feed_links_extra', 3 );
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'rsd_link' );
remove_action( 'wp_head', 'wlwmanifest_link' );
remove_action( 'wp_head', 'index_rel_link' );
remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );
remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );
?>

И пару слов о том, что мы удаляем.

feed_links_extra — вывод RSS фида для записей, тегов, рубрик и т.д. Таким образом, мы запрещаем создавать такие фиды, но тем не менее, они будут доступны, если добавить /feed в конец урла.

feed_links — формально запрещаете появление ссылок на основную RSS ленту и ленту комментариев. Но дополнительно еще нужно удалить такие строки в файле header.php:

<link title="RSS Main Feed" rel="alternate" type="application/rss+xml" href="<?php bloginfo('rss2_url'); ?>" />
<link title="RSS Comment Feed" rel="alternate" type="application/rss+xml" href="<?php bloginfo('comments_rss2_url'); ?>" />

rsd_link и wlwmanifest_link — используется различными блог-клиентами для публикации записей в блоге.

index_rel_link, parent_post_rel_link, start_post_rel_link, adjacent_posts_rel_link_wp_head — это ссылки на главную страницу, на первую запись, на предыдущую и следующую запись и связь с родительской записью.

wp_shortlink_wp_head — короткая ссылка к текущей странице.

Некоторые из них возможно не будут работать в разных версиях WordPress, работоспособность проверена для версии 3.2.1. Правильные названия функций всегда можно посмотреть в файле wp-includes/default-filters.php

6 комментариев: “Скрываем версию WordPress и удаляем ненужные элементы wp_head”

  1. IbizaS:

    Спасибо тебе добрый человек! целый день убил, чтобы избавиться от «shortlink». Твой блог мне помог =)

  2. Виктория:

    Тоже хочу сказать, огромное спасибо! Для меня очень полезный обзор! Именно благодаря Вам мне наконец удалось избавиться от shortlink!

  3. Антон:

    А что за загадочные циферки идут после ‘feed_links_extra’, ‘feed_links’ и др что они значат??7 Где о них можно почитать?

  4. Ксения:

    Здравствуйте, есть ли какой-нибудь способ контролировать порядок вывода кода функцией wp_head(); т.е мне не нравится что у меня идет тайтл, потом идет куча кода выводимого wp_head, а потом где то внизу идет дескрипшн и кейвордц, так же выводимые функцией wp_head (у меня это делает плагин ALL in SEO pack)

  5. Максимка:

    как скрвть цену для неавторизированных пользователей? для woocommerce есть, а вот для wp-e-comerce не могу найти.

Написать коммент