Описание init
— Action
Хук init срабатывает после загрузки WordPress, но до вывода заголовков. Он предназначен для выполнения действий, таких как регистрация пользовательских типов записей, таксономий и других настроек, необходимых для работы сайта
Примеры использования
Пример регистрации пользовательского типа записи:
add_action('init', function() {
register_post_type('product', array(
'labels' => array(
'name' => 'Товары',
'singular_name' => 'Товар'
),
'public' => true,
'has_archive' => true,
'supports' => array('title', 'editor', 'thumbnail')
));
});
В этом примере мы регистрируем новый пользовательский тип записи ‘product’ для товаров
Пример регистрации таксономии:
add_action('init', function() {
register_taxonomy('genre', 'product', array(
'label' => 'Жанры',
'rewrite' => array('slug' => 'genre'),
'hierarchical' => true
));
});
Здесь мы создаем новую таксономию ‘genre’ для пользовательского типа записи ‘product’
Пример загрузки текстовых доменов для перевода:
add_action('init', function() {
load_textdomain('my-plugin', plugin_dir_path(__FILE__) . 'languages/my-plugin-ru_RU.mo');
});
В этом примере мы загружаем файл перевода для нашего плагина
— Лучшие практики
– Использование
Используйте хук init для регистрации пользовательских типов записей, таксономий и других настроек, которые должны быть выполнены до вывода контента на экран
– Производительность
Этот хук не должен вызывать значительных проблем с производительностью, если в нем не выполняются ресурсоемкие операции
– Предупреждения
Избегайте работы с запросами к базе данных или внешними API в этом хуке, так как это может повлиять на время загрузки страницы
Альтернативы
Тип: action
Этот хук срабатывает после загрузки всех плагинов и тем, и может быть использован для выполнения действий, требующих полной инициализации сайта
Используйте его, если необходимо гарантировать, что все плагины и темы загружены перед выполнением кода