Если посмотреть исходный код чистой темы на 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
Спасибо тебе добрый человек! целый день убил, чтобы избавиться от «shortlink». Твой блог мне помог =)
Тоже хочу сказать, огромное спасибо! Для меня очень полезный обзор! Именно благодаря Вам мне наконец удалось избавиться от shortlink!
А что за загадочные циферки идут после ‘feed_links_extra’, ‘feed_links’ и др что они значат??7 Где о них можно почитать?
Это три, два, десятки и ноли :-)
Здравствуйте, есть ли какой-нибудь способ контролировать порядок вывода кода функцией wp_head(); т.е мне не нравится что у меня идет тайтл, потом идет куча кода выводимого wp_head, а потом где то внизу идет дескрипшн и кейвордц, так же выводимые функцией wp_head (у меня это делает плагин ALL in SEO pack)
как скрвть цену для неавторизированных пользователей? для woocommerce есть, а вот для wp-e-comerce не могу найти.