Добавление служебной кнопки в редактор wordpress

В материалах посвященным wordpress уже есть несколько статей, про добавление кнопок в редактор. Эти кнопки помогали создавать тело материала. В этой статье мы разберемся как создать служебную кнопку,по нажатию на которую будет создаваться произвольное поле с заданным значением.

Для примера, наша кнопка будет располагаться над полем для ввода названия материала.

Для того чтобы кнопка отобразилась нам необходимо отредактировать файл edit-form-advanced.php. Он находится в папке wp-admin. Открываем его в Notepad++ или программе редакторе и находим строку

После нее необходимо вставить следующий код

 

<?php 
if( isset( $_POST['checked'] ) )
{
update_post_meta( $post_ID, '_checked_by', $user_identity);
echo '<p style="width: 50%; padding: 1em; background-color: #fff; border-left: 3px solid #2eb151;">Спасибо, данные сохранены</p>';
}
?>

Кнопка для отметки о редактировании. Использовать только редакторам

 
<form method="POST"><input style="margin-bottom: 2em;" name="checked" type="submit" value="Отметка редактора" /></form>

Код состоит из трех частей:

  • 1. php функция, которая обновляет/создает произвольное поле с названием _checked_by.

    Обратите внимание$post_ID — это переменная, которая делает код универсальным. При создании поста, ему присваивается уникальный id, который хранится в этой переменной.

    _checked_by — название поля, нижнее подчеркивание, перед словом checked, делает это произвольное поле служебным и оно не отобразится в блоке произвольных полей редактора статьи. Если вы хотите оставить возможность отредактировать поле через админку, то необходимо прописать название без первого нижнего подчеркивания ('checked_by')

    $user_identity — еще одна переменная, в которой хранится логин пользователя, который нажал на эту кнопку. Эту переменную можно заменить любой другой, например датой публикации или передать id пользователя. Если же вам понадобится передать какое-то фиксированное значение, то нужно использовать вот такую конструкцию — $post_ID, '_checked_by', 'любое слово или набор символов'
  • 2. Текст, который будет перед кнопкой. За него отвечает тег p сюда можно вписать, что угодно. В моем случает это указание на назначение кнопки и для кого она была создана.
  • 3. Форма создающая кнопку. Она не отличается от любой другой формы. Но чтобы связать выполнение php команды, используется название кнопки и метод post.

Что происходит при нажатии на кнопку?

Со стороны пользователя — вывод сообщения, что информация сохранилась.

Со стороны системы:

  • 0. По нажатию кнопки выполняется php код
  • 1. Автоматически создается произвольное поле wordpress
  • 2. Автоматически заполняется произвольное поле
  • 3. Ставится отметка, что поле служебное и его не нужно выводить в блоке произвольных полей
  • 4. Сохраняются данные
  • 5. Выводится сообщение для пользователя

Код универсален, вы можете прописать выполнение любой функции, для этого достаточно заменить вот эту часть кода

update_post_meta( $post_ID, '_checked_by', $user_identity);
echo '<p style="width: 50%; padding: 1em; background-color: #fff; border-left: 3px solid #2eb151;">Спасибо, данные сохранены</p>';

Также вывод сообщения об успешном выполнении php кода стоит без проверки. В идеале, лучше прописать проверку на успех и ошибку.

Теперь вы с легкостью сможете добавить служебные кнопки в редактор wordpress

Поделиться в социальных сетях
Поделиться ВКонтакте Поделиться ВКонтакте
Поделиться в Facebook Поделиться в Facebook
Добавить в Twitter Добавить в Twitter