Где реализована стандартная функция wp_head()?
Я пытаюсь настроить тему, и вижу, что в header.php вызывается "wp_head()". Я не могу найти реализацию этой функции в теме, поэтому предполагаю, что существует стандартная реализация, которая, например, применяет настройки цветовых опций, указанные на странице администратора.
Итак, мои связанные вопросы:
- Где можно увидеть эту стандартную реализацию?
- Можно ли отключить эту стандартную реализацию?
- Можно ли отключить опцию "Настройки цвета" на экране администратора для темы?
Пожалуйста, не стесняйтесь указывать на соответствующую документацию, если это будет проще. Я просмотрел справочные страницы для функции wp_head() и соответствующего хука действия wp_head, но они, похоже, не предоставляют достаточно информации для решения вышеуказанных вопросов.
Спасибо.

Где можно посмотреть стандартную реализацию этого?
Функция wp_head()
просто запускает хук действия wp_head
, который выполняет все callback-функции, добавленные к этому хуку с помощью add_action('wp_head','callback_function');
.
Так что здесь нет стандартной реализации.
Можно ли "отключить" эту стандартную реализацию?
Как мы уже сказали, поскольку нет стандартной реализации, вам нужно найти все add_action, которые подключаются к wp_head, и удалить их с помощью remove_action. Например, если есть такой add_action:
add_action('wp_head','callback_function');
то для его удаления просто добавьте
remove_action('wp_head','callback_function');
Можно ли отключить опцию "Цветовые настройки" в админке темы?
Я предполагаю, что ваша тема имеет какую-то панель настроек, позволяющую выбирать цветовые параметры. Отключение этой опции зависит от самой темы, но она должна быть в одном из файлов темы. Знание конкретной темы помогло бы дать более точный ответ.
Обновление
По умолчанию при вызове wp_head выполняются некоторые действия, и для их удаления можно использовать:
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'feed_links', 2);
remove_action('wp_head', 'index_rel_link');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'feed_links_extra', 3);
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);
Кроме этого, ищите add_action('wp_head' ...
в файлах темы и плагинах.

спасибо за ответы. Я экспериментирую с темой Twenty Ten, которая была включена в скачанный мной WordPress. Если выполнить grep по "wp_head", находится только одно вхождение - вызов в header.php. Я не могу найти ни одного "add_action('wp_head')". Однако, похоже, что-то вызывается через wp_head(), так как в итоговом HTML появляется несколько тегов на месте wp_head(), включая CSS-стиль для body (реализующий мой выбор цвета в админке). Поэтому мой вопрос: где находится код, который это делает, и можно ли его обойти? Спасибо.

Прекрасно. Именно то, что мне было нужно. Я смог изменить тег <link ref="canonical" ...
, который WordPress автоматически выводит с помощью вызова wp_head()
, удалив стандартную функцию его вывода следующим образом: remove_action('wp_head','rel_canonical');
. Затем я зарегистрировал свою собственную функцию: add_action('wp_head', 'my_custom_rel_canonical');
и добавил весь этот код в шаблон header.php
, потому что мне нужно было сделать это там, а не в обычном шаблоне functions.php
. Теперь я знаю, что это работает вполне хорошо. Спасибо, Bainternet.
