WordPress как на ладони
rgbcode is looking for WordPress developers.

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

В админке на странице редактирования (добавления) любой записи (любого типа поста) есть хуки, которые позволяют выводить свой контент в любом месте этой страницы. В этой заметке рассказано о таких хуках и коротко показано как их использовать.

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

  • Разместить перед визуальным редактором видео или текст с подсказками по написаю материалов.
  • Показывать уже прикрепленные к записи изображения в виде слайдера.
  • Подгружать фотографии с 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
}
campusboy 4855youtube.com/c/wpplus
Создатель YouTube канала wp-plus, на котором делюсь своим опытом. Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
Редакторы: Kama 9752
4 комментария
    Войти