WordPress как на ладони
Плагин рекламы для WordPress wordpress jino

wp_head() WP 1.2.1

Запускает хук-событие wp_head. Вызывается в шапке сайта в файле: header.php

wp_head() - это Тег шаблона, который нужно вставлять перед </head>, в файлах темы: header.php или index.php, если header.php не используется.

Подробнее читайте в описании события wp_head

Есть аналогичная функция, только работает для подвала: запускает хук wp_footer в подвале сайта: wp_footer().

Работает на основе: do_action()
Хуки из функции:
Возвращает

Ничего не возвращает.

Использование

<?php wp_head(); ?>

Примеры

#1. Обязательная строка в шапке любой темы.

Пример, из файла базовой темы wp-content/themes/twentyten/header.php:

<?php 
/**
 * wp_head() всегда должен быть перед </head>
 * иначе будет нарушена работа многих плагинов, которые
 * используют этот хук, чтобы добавить свои коды в <head>. Это:
 * стили (styles), скрипты (scripts) и метатеги.
 */
wp_head();
?>
</head>

Код wp head: wp-includes/general-template.php WP 4.8

<?php
function wp_head() {
	/**
	 * Prints scripts or data in the head tag on the front end.
	 *
	 * @since 1.5.0
	 */
	do_action( 'wp_head' );
}

Cвязанные функции

Из раздела: Другие функции темы

wp_head 17 комментариев
Полезные 1 Вопросы 2 Все
  • Александр cайт: numb.esy.es

    Как именно темы и плагины цепляют в него свои скрипты и стили? Как или где редактировать содержимое которое выводит эта функция?

    Ответить3.1 года назад #
    • Kama4396

      Все плагины, которые используют скрипты и стили во вронтэнде. Редактируется через изменение событий wp_head:

      add_action('wp_head', 'функция');
      remove_action('wp_head', 'функция');
      Ответить3.1 года назад #
      3
  • Этот wp_head генерит в шапке кучи мусора, как бы ограничить то, что он выводит? Мне в теме к примеру не нужны подключение шрифтов из googlefonts , rss ссылки и прочее...

    Ответить1.5 года назад #
    • Kama4396

      Примерно так:

      ## Удаляем лишнее с head части сайта 
      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', 'parent_post_rel_link', 10, 0 ); 
      #remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 ); // Убираем связанные ссылки
      
      //3.0+
      remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10 ); // Ссылки на соседние статьи (<link rel='next'... <link rel='prev'...)
      remove_action( 'wp_head', 'wp_shortlink_wp_head', 10 ); // Короткая ссылка, ссылка без ЧПУ <link rel='shortlink'
      
      //add_filter('template_redirect', function(){   if( is_page() ) remove_action( "wp_head", "rel_canonical" ); }); // удаляем rel_canonical для страниц
      add_filter('the_generator', '__return_empty_string'); // Убираем версию WordPress
      
      Ответить1.5 года назад #
      1
  • WPShop3 cайт: wpshop.ru

    Вы видели, первая ссылочка в посте ведет на другой блог? Так и задумано?

    Ответить1.5 года назад #
    • Kama4396

      Да, там хорошо описан сам хук я примерно так же бы описал. Не стал дублировать все это у себя.

      Ответить1.5 года назад #
  • Иван

    Здравствуйте! А как с помощью remove_action удалить из wp_head новую строку WP 4.4:

    <link rel='https://api.w.org/' href='http://example.com/wp-json/' />

    Ответить1.5 года назад #
    • Kama4396

      Вот все фильтры REST API:

      // REST API filters.
      add_action( 'xmlrpc_rsd_apis',            'rest_output_rsd' );
      add_action( 'wp_head',                    'rest_output_link_wp_head', 10, 0 );
      add_action( 'template_redirect',          'rest_output_link_header', 11, 0 );
      add_action( 'auth_cookie_malformed',      'rest_cookie_collect_status' );
      add_action( 'auth_cookie_expired',        'rest_cookie_collect_status' );
      add_action( 'auth_cookie_bad_username',   'rest_cookie_collect_status' );
      add_action( 'auth_cookie_bad_hash',       'rest_cookie_collect_status' );
      add_action( 'auth_cookie_valid',          'rest_cookie_collect_status' );
      add_filter( 'rest_authentication_errors', 'rest_cookie_check_errors', 100 );
      

      Т.е. чтобы деактивировать все REST API фильтры нужно использовать такой код в functions.php:

      // disable REST API filters. ---
      remove_action( 'xmlrpc_rsd_apis',            'rest_output_rsd' );
      remove_action( 'wp_head',                    'rest_output_link_wp_head', 10, 0 );
      remove_action( 'template_redirect',          'rest_output_link_header', 11, 0 );
      remove_action( 'auth_cookie_malformed',      'rest_cookie_collect_status' );
      remove_action( 'auth_cookie_expired',        'rest_cookie_collect_status' );
      remove_action( 'auth_cookie_bad_username',   'rest_cookie_collect_status' );
      remove_action( 'auth_cookie_bad_hash',       'rest_cookie_collect_status' );
      remove_action( 'auth_cookie_valid',          'rest_cookie_collect_status' );
      remove_filter( 'rest_authentication_errors', 'rest_cookie_check_errors', 100 );

      Пытался найти как полностью на низком уровне деактивировать REST API. Похоже никак. Там жестко все в код подключается... НУ, пока REST API не работает без плагина, пока можно не волноваться smile

      Ответить1.5 года назад #
      2
  • DrLecter cайт: washrepair.ru

    Как добавить в подключаемые скрипты async? Чтобы ускорить загрузку страницы... либо есть другое решение?

    Ответить1.4 года назад #
    • Kama4396

      Скрипт должен поддерживать такую подгрузку, если не поддерживает то так загружать опасно, скорее всего работать не будет как нужно...

      Ответить1.4 года назад #
      • Taho
        @

        Ну а все таки как можно добавить? Подскажите?

        Ответитьмесяц назад #
        • Kama4396

          Что добавить? в script тег async впиши и все: <script async ... он будет загружаться асинхронно, только будет ли он работать при этом...

          Ответитьмесяц назад #
  • Ксения cайт: sfondo.ru

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

    Ответить1.2 года назад #
  • Александр

    Подскажите, пожалуйста, как удалить комментарий в head:

    <!-- All in One SEO Pack 2.2.7.5 by Michael Torbert of Semper Fi Web Design[244,295] -->
    Ответитьгод назад #
    • llgruff33 cайт: vygodno.me
      /**
       * Remove [All in One SEO Pack] HTML Comments
       * @link //gist.github.com/llgruff/a7ab776167aa0ed307ec445df54e5fdb
       */
      if (defined('AIOSEOP_VERSION')){
      	add_action('get_header', function() {
      		ob_start(
      			function($o) {
      				return preg_replace('/\n?<.*?One SEO Pack.*?>/mi','',$o);
      			}
      		);
      	});
      	add_action('wp_head', function() {
      		ob_end_flush();
      	}, 999);
      }
      3
  • Maksim

    Добрый день подскажите как убрать подгрузку гугловских шрифтов. Спасибо

    Ответить2 месяца назад #

Здравствуйте, !

Ваш комментарий