WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

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 5.2.2

<?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вязанные функции

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

Еще из тегов шаблона: Основные

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

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

    Ответить5.1 лет назад #
    • Kama7489

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

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

    Ответить3.5 года назад #
    • Kama7489

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

      ## Удаляем лишнее с 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
      
      3
      Ответить3.5 года назад #
  • WPShop4 cайт: wpshop.ru

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

    Ответить3.5 года назад #
    • Kama7489

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

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

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

    Ответить3.4 года назад #
    • Kama7489

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

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

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

        Ответить2 года назад #
        • Kama7489

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

          Ответить2 года назад #
    • // Загружать javascript асинхронно
      add_filter( 'clean_url', 'wcs_defer_javascripts', 11, 1 );
      function wcs_defer_javascripts( $url ){
      
      	if( 
      		is_admin()                  || // Не включать в админпанели
      		! strpos( $url, '.js' )     ||
      		strpos( $url, 'jquery.js' ) || // исключить из правила
      		strpos( $url, 'jquery-migrate.js' )
      	)
      		return $url;
      
      	return "$url' defer='defer"; // или async
      }
      
      Ответитьмесяц назад #
  • Александр

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

    <!-- All in One SEO Pack 2.2.7.5 by Michael Torbert of Semper Fi Web Design[244,295] -->
    -1
    Ответить3 года назад #
    • llgruff47 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
      Ответить2.7 года назад #
  • Здравствуйте!
    Создаю свой первый шаблон.
    Но почему-то после добавления php wp_head(); вылезает ошибка:

    Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'load_style_scrip' not found or invalid function name in H:\OSPanel\domains\avalan.kz\wp-includes\class-wp-hook.php on line 286

    При этом админ.панель не отображается и стили тоже не подключаются.
    Вставляю в index.php перед тегом /head, при этом php wp_footer(); встаёт без ошибок.
    Несколько раз удалял и добавлял php wp_head(); и вычислил, что эта функция вызывает ошибку.
    Так же если в файле функций удаляю: add_action ('wp_enqueue_scripts', 'load_style_scrip'); то оповещение об ошибке тоже пропадает.

    ИСПРАВИЛ ОШИБКУ

    Вижу, что опечатка в слове script smile

    Ответить1.2 года назад #
  • Анрил cайт: anril.dp.ua

    Здравствуйте, подскажите, может не сюда написал, но в wp_head грузится тот же title... Так вот, когда записей много, создаются страницы записей вида /2/ у которых title начинает дублироватся.... Помогите где это поправить никак не пойму. Благодарю.

    Ответить3 мес назад #
    • Kama7489

      Тут зависит как title выводится. По умолчанию в ВП сейчас правильно выводится через хук, функцией wp_get_document_title(), изменить заголовок можно через хук: document_title_parts.

      1
      Ответить3 мес назад #
      • Анрил cайт: anril.dp.ua

        Благодарю. Но все же не понимаю как избавится от дублирования title, для постраничного контента... вроде все там прописано, но вот для anril.dp.ua/услуги-веб-студия/page/2/ ни в какую не хочет добавлять к title - страница 2... Где что еще прописывать надо... sad

        Ответить3 мес назад #
        • Kama7489

          Если заголовок выводиться как я написал, через wp_get_document_title(), то так:

          add_filter( 'document_title_parts', 'filter_function_name_2114' );
          function filter_function_name_2114( $title ){
          	$title['title'] . = ' Страница '. get_query_var('paged');
          
          	return $title;
          }

          Вот описал хук document_title_parts, загляни туда.

          Ответить3 мес назад #
Здравствуйте, !     Войти . Зарегистрироваться