Справочник: функции для тем и плагинов
Все функции объявлены в core/src/helpers.php и доступны везде: в plugin.php, functions.php, классах и шаблонах Blade.
Записи можно передавать моделью или id (Post|int), файлы медиатеки — моделью Media или id.
Хуки#
| Функция |
Что делает |
add_action(string $hook, callable $callback, int $priority = 10, ?int $acceptedArgs = null) |
подписаться на событие |
do_action(string $hook, mixed ...$args) |
вызвать событие |
remove_action(string $hook, callable $callback, int $priority = 10): bool |
отписаться |
has_action(string $hook, ?callable $callback = null): int|bool |
есть ли обработчики (или приоритет этого обработчика) |
did_action(string $hook): int |
сколько раз событие уже срабатывало |
add_filter(string $hook, callable $callback, int $priority = 10, ?int $acceptedArgs = null) |
подписаться на фильтр |
apply_filters(string $hook, mixed $value = null, mixed ...$args): mixed |
пропустить значение через фильтр |
remove_filter(string $hook, callable $callback, int $priority = 10): bool |
отписаться от фильтра |
has_filter(string $hook, ?callable $callback = null): int|bool |
есть ли обработчики фильтра |
Настройки, права, роли#
| Функция |
Что делает |
get_option(string $name, mixed $default = null): mixed |
значение настройки |
update_option(string $name, mixed $value, ?bool $autoload = null): bool |
сохранить настройку ($autoload — загружать ли её вместе со всеми на каждом запросе) |
delete_option(string $name): bool |
удалить настройку |
current_user_can(string $capability, mixed ...$args): bool |
есть ли у вошедшего пользователя право (для записей: current_user_can('edit_post', $post)) |
add_role(string $slug, string $name, array $capabilities = []) |
добавить роль |
remove_role(string $slug) |
убрать роль |
Типы записей, записи, метаполя#
| Функция |
Что делает |
register_post_type(string $name, array $args = []): PostType |
свой тип записей — см. Контент |
register_taxonomy(string $name, array|string $objectTypes, array $args = []): Taxonomy |
своя таксономия |
get_post(Post|int $post): ?Post |
запись по id |
get_permalink(Post|int $post): ?string |
адрес записи на сайте |
get_post_meta(Post|int $post, string $key, mixed $default = null): mixed |
метаполе |
update_post_meta(Post|int $post, string $key, mixed $value) |
сохранить метаполе |
delete_post_meta(Post|int $post, string $key) |
удалить метаполе |
get_posts(array $args = []): Collection |
опубликованные записи: type, number, category, tag, exclude, orderby, order |
get_terms(string $taxonomy, array $args = []): Collection |
термины с posts_count: hide_empty, number, orderby, parent |
Редактор: поля и блоки#
| Функция |
Что делает |
add_meta_box(string $id, string $title, Closure|string $callback, array|string $screen = '*', string $context = 'normal', int $priority = 10) |
блок полей в редакторе (вызывайте в событии add_meta_boxes) |
remove_meta_box(string $id) |
убрать блок полей |
register_block_type(string $name, array $args): BlockType |
свой блок редактора — см. Блоки |
unregister_block_type(string $name) |
убрать блок |
render_blocks(array $blocks): string |
HTML из блоков, сохранённых не в записи |
Медиатека и изображения записей#
| Функция |
Что делает |
get_media(Media|int|null $media): ?Media |
файл медиатеки |
media_url(Media|int|null $media, string $size = 'full'): ?string |
адрес файла; для картинок — размер: thumbnail, medium, large, full или свой |
media_image(Media|int|null $media, string $size = 'large', array $attributes = []) |
готовый тег <img> с srcset и sizes (браузер берёт копию по размеру экрана), шириной, высотой и loading="lazy"; атрибуты можно добавить или переопределить, null убирает атрибут |
add_image_size(string $name, int $width, int $height, bool $crop = false, ?string $label = null) |
свой размер уменьшенных копий |
has_post_thumbnail(Post|int $post): bool |
есть ли у записи изображение |
get_post_thumbnail_url(Post|int $post, string $size = 'large'): ?string |
адрес изображения записи |
get_post_thumbnail(Post|int $post, string $size = 'large', array $attributes = []) |
тег <img> изображения записи с srcset (пусто, если изображения нет) |
set_post_thumbnail(Post|int $post, Media|int $media) |
назначить изображение записи |
delete_post_thumbnail(Post|int $post) |
убрать изображение записи |
Сайт и шаблоны#
| Функция |
Что делает |
cms_context(): ?QueryContext |
что сейчас открыто на сайте (в шаблонах — переменная $context) |
site_title(): string, site_description(): string |
название и описание сайта |
home_url(string $path = ''): string |
адрес главной или пути на сайте |
privacy_policy_url(): string |
адрес страницы политики конфиденциальности из «Настройки → Чтение» или пустая строка |
cms_head(): HtmlString |
всё для <head>: заголовок, описание, Open Graph, стили блоков, событие site_head, код счётчиков из «Настройки → SEO» |
theme_styles(): HtmlString |
assets/css/style.css активной темы (у дочерней — сначала родительской) |
cms_body_open(): HtmlString |
сразу после <body>: событие site_body_open |
cms_footer(): HtmlString |
перед </body>: панель администратора, событие site_footer и «Код перед </body>» из «Настройки → SEO» |
body_class(array|string $extra = []): string |
классы для <body>: home, single, page, category-novosti, logged-in… |
theme_asset(string $path): string |
адрес файла из assets/ активной темы (с учётом родительской) |
cms_form(int $id): HtmlString |
форма из раздела «Формы» |
Меню#
| Функция |
Что делает |
register_nav_menus(array $locations) |
области меню темы: ['social' => 'Соцсети'] |
has_nav_menu(string $location): bool |
назначено ли меню в область |
cms_nav_menu(string $location, array $args = []): HtmlString |
вывести меню: class, id, depth, fallback (pages) |
Плагины и админка#
| Функция |
Что делает |
is_plugin_active(string $slug): bool |
включён ли плагин |
plugin_path(string $slug, string $path = ''): string |
путь к файлу внутри папки плагина |
plugin_asset(string $slug, string $path): string |
адрес файла из assets/ плагина |
register_activation_hook(Plugin|string $plugin, callable $callback) |
что сделать при включении плагина |
register_deactivation_hook(Plugin|string $plugin, callable $callback) |
что сделать при отключении |
add_admin_page(string $slug, string $title, callable|string $callback, array $args = []) |
своя страница в админке — см. Плагины |
admin_page_url(string $slug, array $params = []): string |
адрес этой страницы |
cms_asset(string $path): string |
адрес файла из public/ с меткой времени изменения |
Даты#
| Функция |
Что делает |
cms_date(DateTimeInterface|string|null $date = null, ?string $format = null): string |
дата в часовом поясе и формате сайта («21 октября 2026»); без даты — сейчас |
cms_time(DateTimeInterface|string|null $date = null): string |
время в формате сайта |
cms_datetime(DateTimeInterface|string|null $date = null): string |
дата и время |
Числа#
| Функция |
Что делает |
cms_plural(int|float $number, string $forms): string |
слово в нужной форме для числа: cms_plural(5, 'файл|файла|файлов') → «файлов» |