Хуки на странице редактирования записи

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

  • Разместить перед визуальным редактором видео или текст с подсказками по написаю материалов.
  • Показывать уже прикрепленные к записи изображения в виде слайдера.
  • Подгружать фотографии с 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
} // После поля для ввода заголовка записи, но перед ссылкой на запись
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
} // После поля для ввода заголовка записи и постоянной ссылки для неё
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
} // После визуального редактора
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
} // Сайдбар - перед метабоксами - Страницы
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
} // Сайдбар - перед метабоксами - Все типы записей, кроме страниц
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
} // После всех метабоксов широкой колонки и только для страниц
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
} // После всех метабоксов широкой колонки, для всех типов записей, кроме страниц
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
} // После всех метабоксов широкой колонки и хуков. Это последний хук на странице.
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
}