Что Такое Хуки WordPress? – Полное Руководство для Начинающих


 |  ❤ 11  |  ☻ 0
Категория: Статьи
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(0 голосов, в среднем: 0 из 5)

access_time
hourglass_empty

Хуки WordPress – это функции, которые позволяют вам манипулировать процедурой без изменения файла в ядре WordPress. Хук может быть применён как к событию (action hook), так и к фильтру (filter hook).

Хуки нужны любому пользователю WP. С их помощью можно создавать новые функции или редактировать дефолтные настройки тем (англ) и плагинов (англ).

Назначение Хуков WordPress

Основное назначение хуков автоматический запуск функции. Кроме того, этот метод также даёт возможность изменять, расширять или ограничивать функциональность темы или плагина.

Пример хука в WordPress:

function mytheme_enqueue_script() {wp_enqueue_script( 'my-custom-js', 'custom.js', false );}
add_action( 'wp_enqueue_scripts', 'mytheme_enqueue_script' );

В этом примере мы видим, что для того, чтобы прикрепить функцию mytheme_enqueue_script к событию wp_enqueue_scripts был создан хук. Этот хук запускает новое событие на сайте, поэтому он называется хуком событий.

Хуки часто используются при создании компонентов плагина приложения. Они применяются не только в системах управления контентом (CMS), таких как WordPress, но и на сайтах электронной коммерции (англ) и на корпоративных интранет-сайтах.

Кроме того, как мы упоминали выше, хуки делятся на две категории: события и фильтры. С помощью хука событий мы добавляем процесс, в то время как хук фильтра используется, чтобы изменить значения процесса.

Как Пользоваться Хуками WordPress?

Для того, чтобы работать с хуками WordPress всё-таки понадобится немного знаний HTML (англ) и PHP. Однако даже если вы новичок в веб-разработке, с созданием хуков не должно возникнуть никаких проблем.

Достаточно просто перейти на страницу публикации и переключиться на текстовый редактор. Когда вы там, вы просто можете вставить готовый хук, скопированный с других сайтов или тот, который вы создали сами. 

Создаём Хуки-События

Чтобы добавить хук-событие, вы должны активировать функцию add_action () в плагине WordPress. Эту функцию можно активировать, записав показанные ниже паттерны в файле functions.php:

add_action(the 'function name of target_hook', 'The_name_of_function_you_want_to_use' ,'priority_scale')

Как мы видим выше, чтобы работать правильно, хуки WordPress используют шкалу приоритетов. Эта шкала является автоматическим порядковым значением, основанным на шкале от 1 до 999. Она определяет приоритет функций, связанных с этим конкретным хуком.

Чем ниже значение приоритета функции, тем раньше она будет запущена. Шкала покажет последовательность вывода функций, установленных при использовании одинаковых target_hooks.

Изначальное значение priority_scale равно 10. Вы можете упорядочить шкалу в соответствии с количеством ваших target_hooks

Пример хука-события:

<?php
add_action( 'wp_print_footer_scripts', 'hostinger_custom_footer_scripts' );
function webhost_custom_footer_scripts(){
?>
<script>//пропишите скрипты футера прямо здесь</script>
<?php
}
?>

Обратите внимание на шаблон в этом примере:

  • <?php это место, где вы прикрепляете хук к функции
  • add_action команда для создания хука-события
  • wp_print_footer_scripts это target_hook, который вы связываете с новой функцией
  • Hostinger_custom_footer_scripts это функция, установленная и прикреплённая к target_hook
  • <script> означает текст, который вы хотите показать на target_hook (в данном случае это wp_print_footer_scripts)

Создаём Хук-Фильтр

Вы можете создать фильтр, используя функцию apply_filters(). Хук-фильтр используется для модификации, фильтрации или замены значения на новое.

Принцип работы фильтра похожий на тот, что и у хуков-событий. У него тоже есть прикрепляемая к нему функция. Но хук-фильтр обязательно передаёт значение  прикреплённой к нему функции, которая в свою очередь возвращает изменённое или переданное значение (apply_filter).

Кроме того, ещё есть функция, которая прикрепляет указанную функцию PHP к указанному фильтру (add_filter).

Вот пример хука-фильтра:

$score = 100;
echo "Current score is : ". apply_filters( 'change_score', $score );
  • $score = 100 начальное значение
  • echo “Current score is:” представляет скрипт, который вы показываете
  • apply_filters команда для создания фильтра
  • “сhange_score”, $score функция для фильтрации

Вот фильтр:

add_filter( 'change_score', 'function_change_score' );
function function_change_score( $score ){
? $score+=100;
? return $score;
}
  • Add_filter создан, чтобы соединить фильтр-хук с новой функцией
  • Change_score целевой хук, который будет изменён
  • Function_change_score это новая функция, которая повлияет на начальное значение.
  • ? $score+=100; код, добавляющий больше значения к начальному значению ($score)
  • ? return $score; код для отображения нового значения в конце

Вот, что должно получится в результате:

Current score: 200

Удаляем Хуки WordPress: Фильтры и События

Чтобы удалить функцию, привязанную add_action() или add_filter() в своем коде WordPress, используйте remove_action() или remove_filter().

Последние позволят вам изменить плагин, который имеет слишком много ненужных хуков, мешающих оптимизации вашего сайта.

Наверняка сейчас у вас возник вопрос: “А почему бы просто не удалить эти ненужные функции?”

Ну, это, безусловно, рабочий вариант, если вы используете свои собственные хуки и хорошо знаете код.

Однако в WordPress вы часто работаете с чужими плагинами или темами. Это означает, что вы рискуете сделать фатальную ошибку, удалив неправильные строки.

Вот пример remove_action() в WordPress:

remove_action( 'wp_print_footer_scripts', 'hostinger_custom_footer_scripts', 11 );
add_action( 'wp_print_footer_scripts', 'hostinger_custom_footer_scripts_theme', 11 );
function hostinger_custom_footer_scripts_theme()
{
?>
<script>//пример вывода по теме</script>
<?php
}

В приведённом выше примере показано, что remove_action используется для того, чтобы удалить дефолтные скрипты футера WordPress, заменив их темой специальных скриптов футера Hostinger (hostinger_custom_footer_scripts_theme).

Эта команда применима ко всем видам хуков-событий в WordPress.

А вот пример remove_filter:

remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );
}

В приведенном выше примере показано, как деактивировать wp_staticize_emoji_for_email, который преобразует эмодзи в статические изображения.

Затем он заменяет их на disable_emojis_tinymce, который отключает функцию Emoji в WordPress (известно, что Emoji замедляет работу сайта, поскольку это дополнительный HTTP-запрос).

Кроме того, вы также можете использовать команду remove_filter, чтобы отключить несколько фильтров в определённой последовательности. Вот пример:

function disable_emojis() {
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );
add_action( 'init', 'disable_emojis' );
}

Задача приведённого выше кода полностью устранить функции эмодзи в WordPress. Как мы видим, количество команд remove_filter, которые вы можете встроить в functions.php неограниченно.

Практические Примеры Хуков WordPress

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

admin_post_thumbnail_size

Этот фильтр отображает уменьшенное изображение вашей публикации в разделе “Изображение записи”. Три параметра, связанных с функциями: $size, $thumbnail_id, и $post.

Хук должен выглядеть следующим образом:

$size = apply_filters( 'admin_post_thumbnail_size', $size, $thumbnail_id, $post );

Параметр $size может быть изменён. Допустим, вы хотите установить размер миниатюры в 240×240 пикселей, это будет выглядеть так:

$size = apply_filters( 'admin_post_thumbnail_size', 240, $thumbnail_id, $post);

Вы также можете задать нестандартный размер для вашей миниатюры, добавив функцию array(). Вот как будет выглядеть код:

$size = apply_filters( 'admin_post_thumbnail_size', array(240, 400), $thumbnail_id, $post);

В этом примере функция array () устанавливает желаемый размер миниатюры 240×400 пикселей. Таким образом, вы можете подобрать наиболее подходящее расширение. 

after_password_reset

Этот хук-событие активируется тогда, когда пользователь сбрасывает свой пароль. Хук состоит из двух параметров: $user и $new_pass.

Вот как он должен выглядеть:

do_action( 'after_password_reset', $user, $new_pass );

customize_loaded_components

Этот хук действует как фильтр, исключающий некоторые компоненты WordPress из основного процесса. Это функции, которые работают с файлами ядра, такими как wp-activ.php, wp-config-sample.php или wp-settings.php. Компонент представляет собой набор функций в WordPress, представляющий одну конкретную функцию в виджете.

Однако важно отметить, что customize_loaded_components не может быть добавлен в тему, так как он срабатывает только во время события plugins_loaded.

Читайте также:  Что Такое DNS Lookup и Как Уменьшить Количество DNS-запросов?

Хук состоит из двух параметров: $components и $this. Вот как он должен выглядить:

$components = apply_filters( 'customize_loaded_components', array( 'widgets', 'nav_menus' ), $this );

Параметр $components представляет собой пакет основных функций для загрузки, а $this относится к объекту в существующем классе.

Вы можете настроить функцию array () так, чтобы она определяла, какие компоненты исключить. В приведённом выше примере показано, что виджеты и nav_menus являются компонентами, исключёнными из основного процесса.

Выводы

Подводя итог, можно сказать, что хуки WordPress это функции, позволяющие изменить стандартную конфигурацию вашего сайта. С их помощью, вы можете добавлять специальные функции или деактивировать процессы без изменения файла ядра.

Хуки можно разделить на две категории: события и фильтры.

Хотя принципы создания хуков почти одинаковы, они выполняют совершенно разные функции. 

Хук-событие используется для создания новых функций, а хук-фильтр используется для изменения существующего кода в файле function.php.

Кроме того, есть множество хуков, которые вы можете встроить в WordPress. Попробуйте поэкспериментировать с использованием различных типов хуков, чтобы манипулировать функциями на ваше усмотрение.

А поднакопив немного опыта, вы даже сможете создавать собственные плагины с этой фичей. Удачи!


Что Такое Хуки WordPress? – Полное Руководство для Начинающих

Вы читаете статью Что Такое Хуки WordPress? – Полное Руководство для Начинающих. Все материалы на сайте Host Biz – топ рейтинг написаны специально для Вас и мы рады если Вам нравиться наш сайт.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

четырнадцать − одиннадцать =

наверх