Карта Хуков на странице редактирования записи
В админке на странице редактирования (добавления) любой записи (любого типа поста) есть хуки, которые позволяют выводить свой контент в любом месте этой страницы. В этой заметке рассказано о таких хуках и коротко показано как их использовать.
Благодаря таким хукам можно сделать публикацию материалов более удобной, всё зависит от ваших умений программировать и фантазии. К примеру:
- Разместить перед визуальным редактором видео или текст с подсказками по написаю материалов.
- Показывать уже прикрепленные к записи изображения в виде слайдера.
- Подгружать фотографии с Google по ключевому слову, чтобы можно выбрать одну из них для миниатюры.
- Выводить калькулятор для подсчёта калорий, если публикуете кулинарные рецепты.
- И многое другое, что требуют поставленные задачи и наличие умений.
В дополнении к таким этим хукам есть еще метабоксы, которые также помогут расширить возможности страницы редактирования записи.
Это руководство справедливо, только если у вас активен визуальный редактор (не редактор блоков).
Карта хуков
Визуальное представление того, где и какой хук используется.
Список хуков отсортированный по местоположению (сверху вниз, справа налево) (названия кликабельны):
- edit_form_top
- Срабатывает перед полем для ввода заголовка записи.
- edit_form_before_permalink
- Срабатывает после поля для ввода заголовка записи, но перед ссылкой на запись.
- edit_form_after_title
- Срабатывает после поля для ввода заголовка записи и постоянной ссылки для неё.
- edit_form_after_editor
- Срабатывает после визуального редактора.
- submitpage_box (для страниц)
- submitpost_box (для других типов записей)
- Срабатывает в сайдбаре до вывода метабоксов.
- edit_page_form (для страниц)
- edit_form_advanced (для других типов записей)
- Срабатывает после всех метабоксов широкой колонки.
- dbx_post_sidebar
- Срабатывает после всех метабоксов широкой колонки и хуков. Это последний хук на странице.
Код-пример со всеми хуками
Вставив этот код в functions.php темы или файл активного плагина, вы получите результат, который показан на скриншоте в начале статьи:
<?php // Перед полем для ввода заголовка записи add_action( 'edit_form_top', 'callback__edit_form_top' ); function callback__edit_form_top( $post ) { ?> <div style="margin-top: 10px;padding: 15px;color: #fff;background: #673AB7;clear: both;"> Здесь сработал хук <b>edit_form_top</b>. </div> <?php }
<?php // После поля для ввода заголовка записи, но перед ссылкой на запись add_action( 'edit_form_before_permalink', 'callback__edit_form_before_permalink' ); function callback__edit_form_before_permalink( $post ) { ?> <div style="margin-top: 10px;padding: 15px;color: #fff;background: #914029;clear: both;"> Здесь сработал хук <b>edit_form_before_permalink</b>. </div> <?php }
<?php // После поля для ввода заголовка записи и постоянной ссылки для неё add_action( 'edit_form_after_title', 'callback__edit_form_after_title' ); function callback__edit_form_after_title( $post ) { ?> <div style="margin-top: 10px;padding: 15px;color: #fff;background: #9876aa;clear: both;"> Здесь сработал хук <b>edit_form_after_title</b>. </div> <?php }
<?php // После визуального редактора add_action( 'edit_form_after_editor', 'callback__edit_form_after_editor' ); function callback__edit_form_after_editor( $post ) { ?> <div style="margin-top: 10px;padding: 15px;color: #fff;background: #ff2401;clear: both;"> Здесь сработал хук <b>edit_form_after_editor</b>. </div> <?php }
<?php // Сайдбар - перед метабоксами - Страницы add_action( 'submitpage_box', 'callback__submitpage_box' ); function callback__submitpage_box( $post ) { ?> <div style="margin-top: 10px;padding: 15px;color: #fff;background: #8BC34A;clear: both;"> Здесь сработал хук <b>submitpage_box</b>. </div> <?php }
<?php // Сайдбар - перед метабоксами - Все типы записей, кроме страниц add_action( 'submitpost_box', 'callback__submitpost_box' ); function callback__submitpost_box( $post ) { ?> <div style="margin-top: 10px;padding: 15px;color: #fff;background: #8BC34A;clear: both;"> Здесь сработал хук <b>submitpost_box</b>. </div> <?php }
<?php // После всех метабоксов широкой колонки и только для страниц add_action( 'edit_page_form', 'callback__edit_page_form' ); function callback__edit_page_form( $post ) { ?> <div style="margin-top: 10px;padding: 15px;color: #fff;background: #0085ba;clear: both;"> Здесь сработал хук <b>edit_page_form</b>. </div> <?php }
<?php // После всех метабоксов широкой колонки, для всех типов записей, кроме страниц add_action( 'edit_form_advanced', 'callback__edit_form_advanced' ); function callback__edit_form_advanced( $post ) { ?> <div style="margin-top: 10px;padding: 15px;color: #fff;background: #795548;clear: both;"> Здесь сработал хук <b>edit_form_advanced</b>. </div> <?php }
<?php // После всех метабоксов широкой колонки и хуков. Это последний хук на странице. add_action( 'dbx_post_sidebar', 'callback__dbx_post_sidebar' ); function callback__dbx_post_sidebar( $post ) { ?> <div style="margin-top: 10px;padding: 15px;color: #fff;background: #ff9800;clear: both;"> Здесь сработал хук <b>dbx_post_sidebar</b>. </div> <?php }