Очистите раздел HEAD темы WordPress и ненужные файлы JS и CSS

Опубликовано: 2018-09-04

Ядро WordPress размещает довольно много кода в разделе head HTML сайта, хотите вы этого или нет. Этот код далеко не бесполезен и служит цели на большинстве сайтов. Однако, если вы помешаны на чистом коде или используете WordPress для запуска SaaS, вам нужно очистить HTML. Как и в большинстве случаев в WP, нужно просто удалить несколько действий и фильтров.

#WordPress — отличная платформа для создания сайтов #SaaS. Но прежде чем это сделать, требуется небольшая очистка.

НАЖМИТЕ, ЧТОБЫ НАПИСАТЬ

Зачем мне удалять эти теги в файлах HEAD, CSS или JS?

Есть несколько причин. Некоторым людям нравится содержать свой код и сайты в максимально аккуратном виде. Зачем иметь строку кода в HTML, если вы знаете, что она вам не нужна, и знаете, как ее удалить. Нет причин, по которым так когда-либо. То же самое касается дополнительных файлов CSS и JS. Если вы не используете смайлики на своем сайте, зачем вам включать этот JS на каждую страницу?

Тогда есть безопасность. Есть несколько фрагментов HTML, которые WordPress автоматически добавляет для отображения URL-адресов, которые использовались в прошлом. Я должен подчеркнуть, что эти URL-адреса (в частности, конечная точка XML RPC) не являются секретом. Они должны быть публичными. Но изменить их на что-то нестандартное и скрыть их — известная практика. В этом случае очевидно, что вам не нужны эти URL-адреса в вашем HTML.

Скорость также является веской причиной для очистки HTML. Хотя я должен сказать, что не уверен, сколько вы выиграете, удалив несколько сотен символов из HTML, это шаг в правильном направлении. Удаление ненужных файлов JS и CSS сэкономит вам несколько HTTP-запросов, и это то, на чем вы должны сосредоточиться при оптимизации. Tidy Repo недавно протестировал более 100 тем WordPress на скорость, и количество запросов оказывает значительное влияние на общую скорость сайта.

Наличие чистого HTML-кода гарантирует, что вы знаете, что происходит на вашем сайте, и является отличным началом для оптимизации скорости сайта.

И последнее, но не менее важное, причина и причина, по которой у нас есть этот код под рукой, — это SaaS на базе WordPress. Когда вы создаете SaaS, вам нужен полный контроль над тем, что находится в вашем HTML, и большинство вещей, которые WP добавляет в HTML, сами по себе не являются чем-то, что вы будете использовать. Итак, ради всех отмеченных выше причин — максимально убираем вещи. Это дает нам отличную, компактную платформу для создания пользовательских решений, сохраняя при этом 99% основных функций WP, которые используются для обеспечения работы SaaS.

Могу ли я безопасно удалить эти вещи? Разве они не служат цели?

Да, они служат цели, но только в определенных ситуациях. На «среднем» сайте несколько дополнительных тегов link в шапке не проблема, и все они облегчают определенные операции и интеграции. Но они не имеют решающего значения для функционирования любого сайта и уж точно не для SaaS.

Давайте очистим код

Вы можете протестировать приведенный ниже код с любой темой. По умолчанию 2017 подойдет. Однако, если вы используете «обычные» темы WordPress (и некоторые плагины вдобавок к ним), вы никогда не узнаете, кто добавил код — ядро ​​WP, тема или плагин. Я предлагаю вам перезагрузить свой сайт, чтобы удалить все плагины, а затем использовать тему, в которой есть только wp_head() и wp_footer() . Вот как выглядит этот index.php и вот вся тестовая тема, которую вы можете использовать для тестирования.

<!DOCTYPE html>
<html>
<head>
  <?php
    wp_head();
  ?>
</head>
<body>
  <h1>The Most Basic WP Theme</h1>
  <?php
    wp_footer();
  ?>
</body>
</html>

Если вы активируете нашу тестовую тему и откроете исходный код на главной странице, вы заметите гораздо больше кода, чем видно в index.php выше. Это то, что мы будем убирать. Поместите приведенный ниже код в файл functions.php темы. Если вы не хотите удалять/отключать функцию, закомментируйте строку, в которой она упоминается.

add_action('after_setup_theme', 'cleanup');

function cleanup() {
  remove_action('wp_head', 'rsd_link');
  remove_action('wp_head', 'wp_generator');
  remove_action('wp_head', 'feed_links', 2); 
  remove_action('wp_head', 'feed_links_extra', 3);
  remove_action('wp_head', 'index_rel_link');
  remove_action('wp_head', 'wlwmanifest_link');
  remove_action('wp_head', 'start_post_rel_link', 10, 0);
  remove_action('wp_head', 'parent_post_rel_link', 10, 0);
  remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0);
  remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
  remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
  remove_action('wp_head', 'print_emoji_detection_script', 7);
  remove_action('wp_head', 'rel_canonical');
  remove_action('wp_head', 'rel_alternate');
  remove_action('wp_head', 'wp_oembed_add_discovery_links');
  remove_action('wp_head', 'wp_oembed_add_host_js');
  remove_action('wp_head', 'rest_output_link_wp_head');
  
  remove_action('rest_api_init', 'wp_oembed_register_route');
  remove_action('wp_print_styles', 'print_emoji_styles');
  
  remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10);
  remove_filter('pre_oembed_result', 'wp_filter_pre_oembed_result', 10);
  
  add_filter('embed_oembed_discover', '__return_false');
  add_filter('show_admin_bar', '__return_false');
}

Что делает что

Действие rsd_link отвечает за отображение действительно простой ссылки для обнаружения, в то время как wp_generator показывает версию WP и удаляется практически каждым подключаемым модулем безопасности, когда-либо написанным для WP. Два действия feed_links добавляют различные ссылки к нескольким RSS-каналам. Различные действия _rel_link добавляют ссылки к сообщениям, чтобы они были более доступными и их было легче найти различными службами. Если вы не используете Windows Live Writer, вам действительно не нужно действие wlwmanifest_link . Нам не нужны смайлики, поэтому print_emoji_detection_script может работать, и то же самое касается различных ссылок oembed , включая поддержку oembed в REST API. Удаление действия oembed_dataparse гарантирует, что WP не испортит никакие ссылки в ваших сообщениях и не превратит их в какие-либо мультимедийные файлы через oembed. Последний фильтр show_admin_bar предотвратит отображение панели администратора WP на вашем внешнем интерфейсе независимо от настроек для каждой учетной записи.

В #WordPress есть всего несколько вещей, которые нельзя изменить с помощью действий и фильтров. К счастью, управление контентом HEAD не входит в их число.

НАЖМИТЕ, ЧТОБЫ НАПИСАТЬ

Гибкость WordPress великолепна

Многие статьи распространяются с такими заголовками, как «Как удалить мусор из заголовка WP». Это не мусор. Это то, что дает огромную мощь WordPress прямо из коробки. Многие люди ценят это, и им не нужно тратить часы на настройку. С другой стороны, очистка — это просто удаление нескольких действий. У вас есть полный контроль над тем, что помещается в ваш HTML, и вы можете легко использовать WordPress для поддержки неконтентных сайтов, таких как SaaS.