Хук init
является одним из самых важных в WordPress, так как он запускается на этапе инициализации системы. Это отличный момент для выполнения различных задач, например, регистрации пользовательских типов записей, таксономий или создания собственных шорткодов.
В этом посте я покажу, как можно использовать хук init
, чтобы зарегистрировать кастомный тип записи — допустим, для сайта, посвященного онлайн-курсам.
Что такое хук init
?
Хук init
срабатывает после того, как все основные компоненты WordPress (плагины, темы и т.д.) загружены, но до того, как сайт начнет выводить информацию на страницу. Это отличное место для вызова функций, которые должны быть выполнены до рендеринга страницы.
Пример использования хука init
для регистрации типа записи
Давайте создадим кастомный тип записи под названием «Курсы». Это будет полезно, если вы хотите организовать курсы как отдельные записи, что даст возможность добавлять для них описания, изображения и другую информацию.
Шаг 1: Добавляем код в functions.php
В файле functions.php
вашей темы нужно добавить следующий код:
function create_custom_post_type_courses() {
$labels = array(
'name' => 'Курсы',
'singular_name' => 'Курс',
'menu_name' => 'Курсы',
'name_admin_bar' => 'Курс',
'add_new' => 'Добавить новый',
'add_new_item' => 'Добавить новый курс',
'new_item' => 'Новый курс',
'edit_item' => 'Редактировать курс',
'view_item' => 'Просмотреть курс',
'all_items' => 'Все курсы',
'search_items' => 'Искать курсы',
'not_found' => 'Курсы не найдены',
'not_found_in_trash' => 'Курсы в корзине не найдены',
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array('slug' => 'courses'),
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => null,
'supports' => array('title', 'editor', 'thumbnail', 'excerpt'),
);
register_post_type('courses', $args);
}
add_action('init', 'create_custom_post_type_courses');
Шаг 2: Что делает этот код?
labels
: Задает различные текстовые строки для вашего типа записи, которые будут отображаться в панели администратора.public
: Делает тип записи доступным на сайте (публичным).show_ui
: Позволяет отображать интерфейс для управления записями этого типа в админке.supports
: Определяет, какие стандартные элементы поддерживаются для типа записи (например, заголовок, текстовый редактор, миниатюра).rewrite
: Позволяет настроить «человеческий» URL для типа записи (например,/courses/
).
Шаг 3: Проверка результата
После того как вы добавили код в functions.php
, вы сможете увидеть новый пункт меню «Курсы» в панели администратора WordPress. Теперь вы можете добавлять и управлять курсами точно так же, как обычными записями.
Заключение
Использование хука init
для регистрации пользовательских типов записей — это мощный способ расширить функциональность WordPress. Благодаря кастомным типам записей можно организовать контент в удобном формате, что особенно полезно для сайтов, работающих с разными типами информации, такими как курсы, портфолио или отзывы.