Кінцевий результат, якого ми хочемо досягти:

Завантажити вихідні файли

Це четверта з шести частин циклу «Користувацька настройка панелі адміністрування WordPress»:

1. Користувацька настройка панелі адміністрування WordPress: Форма входу;

2. Користувацька настройка панелі адміністрування WordPress: панель управління сайтом;

3. Налаштовуємо панель адміністрування WordPress: користувальницьке меню адміністрування;

4. Налаштування адміністративної панелі WordPress: текстова довідка;

5. Настройка панелі адміністрування WordPress – списки об’єктів;

6. Налаштовуємо панель адміністрування WordPress – змінюємо стиль елементів.

У другій частині даного циклу статей, я показав, як додавати власні метабокси (custom metaboxes) на панель управління WordPress, яку ви можете використовувати, щоб реалізувати текстові підказки для ваших клієнтів або користувачів.

Але як бути, якщо треба надати текстову довідку на окремо виділеному екрані редагування? У цій статті я покажу вам, як це зробити.

План роботи:

  • Додавання метабокса з текстовою довідкою у вікно редагування запису (Post);
  • Додавання метабокса з правої сторони від вікна редагування;
  • Додавання «фейкового» метабокса над вікном редагування.
  • Для виконання даних пунктів я збираюся створити плагін. Якщо ви вже створили плагін після прочитання першої-третьої частини з даної серії статей, то ви, можливо, захочете додати код, представлений у цій частині, до вашої директорії. Це дозволить об’єднати всі функції по налаштуванню адміністративної панелі в єдиний плагін.

    Що потрібно для отримання успішного результату

    Щоб успішно виконати всі інструкції, представлені в даній статті, вам знадобиться:

    • Встановлений WordPress;
    • Доступ до папки плагінів вашого сайту;
    • Текстовий редактор для написання коду.

    Підготовка

    На початок коду плагіна я вставив такі строки:

    /*
    Plugin Name: Wptuts+ Customize the Admin Part 4 — Help Text
    Plugin URI: http://rachelmccollin.co.uk
    Description: This plugin supports the tutorial in Wptuts+. It adds help text to the WordPress editing screen.
    Версія: 1.0
    Author: Rachel McCollin
    Author URI: http://rachelmccollin.com
    Ліцензія: GPLv2
    */

    Додавання метабокса з текстовою довідкою у вікно редагування запису (Post)

    Щоб додати метабокс з текстовою довідкою, ми будемо використовувати функцію add_meta_box(). Вона відмінно підходить для створення метабокса для вікна редагування запису або зміни налаштувань. Ця функція має декілька параметрів:

    Опис параметрів:

    • $id – унікальний ID для метабокса;
    • $title – заголовок, який будуть бачити користувачі;
    • $callback –callback-функція визначає вміст метабокса;
    • $post_type – тип запису, при редагуванні якого буде з’являтися метабокс. Залиште поле порожнім, щоб ваш метабокс з’являвся при редагуванні записів будь-якого типу;
    • $context – місце розташування метабокса на екрані: ‘normal’, ‘advanced’ або ‘side’. За замовчуванням встановлюється позиція ‘advanced’, яка розміщує метабокс в основній частині екрана редагування;
    • $priority – визначає пріоритет для даного метабокса (‘high’, ‘core’, ‘default’ або ‘low’). Цей параметр корисний, якщо ви додаєте кілька метабоксов;
    • $callback_args – аргументи, що передаються у вашу callback функцію (опціонально).

    Отже, щоб додати метабокс в основну частину вікна редагування запису, я додав в плагін наступний код:

    // Add metabox below editing pane
    function wptutsplus_metabox_after_title() {
    add_meta_box( ‘after-title-help’, ‘Using this Screen’, ‘wptutsplus_after_title_help_metabox_content’, ‘post’, ‘advanced’, ‘high’ );
    }
    add_action( ‘add_meta_boxes’, ‘wptutsplus_metabox_after_title’ );

    Цей код додає порожній метабокс, який поки що не працює, тому що я не додав callback-функції. А ось і вона:

    // callback function to populate metabox
    function wptutsplus_after_title_help_metabox_content() { ?>

    Use this screen to add new articles or edit existing ones. Make sure you click ‘Publish’ to publish a new article once you’ve added it, or ‘Update’ to save any changes.

    Після усіх цих кроків, на сторінці редагування постів з’явиться наш метабокс, як це показано на скріншоті:

    Налаштування адміністративної панелі WordPress: текстова довідка

    Як ви можете бачити, я видалив деякі стандартні метабокси з вікна редагування запису (такі, як «Уривки» і «Дискусії»), але мій метабокс все ще знаходиться нижче вікна редагування та не досить помітний.

    Є можливість використовувати функцію add_meta_box(), щоб вставити метабокс над головним вікном редагування не вдаючись до використання jQuery (цей спосіб зрушує вікно редагування вниз і, на мою думку, може впоратися з цим завданням).

    Отже, які є альтернативи?

  • Можна додати наш метабокс над метабоксом ‘Публікація’, що дуже наочно для користувача;
  • З допомогою хитрого трюку з використанням хука edit_form_after_title, можна додати «фейковий» метабокс над панеллю редагування.
  • Я почну зі способу під номером один.

    1. Додавання метабокса з правої сторони від вікна редагування

    Щоб додати метабокс праворуч від вікна редагування запису, я використовую функцію add_meta_box() так само, як і раніше, але з дещо зміненими параметрами. Я також буду використовувати іншу callback-функції для наповнення метабокса вмістом.

    Додайте наступний код в ваш плагін:

    // Add help text to right of screen in a metabox
    function wptutsplus_metabox_top_right() {
    add_meta_box( ‘after-title-help’, ‘Publishing and Saving Changes’, ‘wptutsplus_top_right_help_metabox_content’, ‘post’, ‘side’, ‘high’ );
    }
    // callback function to populate metabox
    function wptutsplus_top_right_help_metabox_content() { ?>

    Make sure you click ‘Publish’ below to publish a new article once you’ve added it, or ‘Update’ to save any changes.

    Цей код додасть маленький метабокс з вказівками. З-за своїх розмірів, якщо ви додасте багато тексту, то метабокс може зрушити вниз інші знаходяться під ним, так що будьте уважні. Результат можна побачити на скріншоті:

    Налаштування адміністративної панелі WordPress: текстова довідка

    Примітка: я закомментировал функцію, яка виводить метабокс над вікном редагування, перед додаванням метабокса справа, тому ви не бачите його на скріншоті вище.

    2. Додавання «фейкового» метабокса над вікном редагування

    Додавання метабокса в праву частину екрану це досить просте завдання. Але що робити, якщо ми хочемо додати цей метабокс зліва від вікна редагування?

    Щоб зробити це, треба використовувати функцію edit_form_after_title замість add_meta_box(), яка дозволяє вставляти вміст між заголовком та вікном редагування. Я прикріпив хук до цієї функції, щоб додати розмітку, яка буде виводитися на екран.

    Я також використав у цій розмітці клас оригінального метабокса, щоб відтворити його зміст.

    Додайте в плагін наступний код:

    function wptutsplus_text_after_title( $post_type ) { ?>

    Using this screen

    Use this screen to add new articles or edit existing ones. Make sure you click ‘Publish’ to publish a new article once you’ve added it, or ‘Update’ to save any changes.

    Я додав розмітку, яка робить наш «фейковий» метабокс схожим на справжній, включивши в код класи .postbox і .inside:

    Налаштування адміністративної панелі WordPress: текстова довідка

    Однак у цій розмітці є проблема – вона буде показуватися на екрані редагування для всіх типів посад. Це пов’язано з тим, що я не використовую функцію add_meta_box(), і, відповідно, не маю можливості відредагувати параметр $post_type.

    Тому я піду іншим шляхом і реалізую перевірку типу вікна редагування запису ДО висновку розмітки.

    Перебуваючи в адміністративній частині WordPress, я не можу використовувати стандартні умовні оператори, які я використовував при створенні шаблону, щоб визначити поточне місцезнаходження в адміністративній панелі. Але можна скористатися функцією get_current_screen(), щоб визначити екран, на якому в даний момент знаходиться користувач.

    Функція get_current_screen() повертає масив, який містить в собі, крім усього іншого, тип запису на поточній сторінці. Я можу використовувати цей масив для перевірки на предмет того, що редагується в даний момент має тип «post».

    Вставити всередину своєї функції над усім вмістом наступні рядки:

    $screen = get_current_screen();
    $edit_post_type = $screen->post_type;
    if ( $edit_post_type != ‘post’ )
    return;
    ?>

    Тепер, повністю функція буде виглядати так:

    // Add fake metabox above editing pane
    function wptutsplus_text_after_title( $post_type ) {
    $screen = get_current_screen();
    $edit_post_type = $screen->post_type;
    if ( $edit_post_type != ‘post’ )
    return;
    ?>

    Using this screen

    Use this screen to add new articles or edit existing ones. Make sure you click ‘Publish’ to publish a new article once you’ve added it, or ‘Update’ to save any changes.

    В результаті виконаної роботи, наш «фейковий» метабокс буде з’являтися тільки при виведенні вікна редагування запису. Ви можете реалізувати цю функцію також для інших типів постів (таких, як ‘page’ і ‘attachment’, а також для своїх власних типів записів), щоб відображати в кожному разі відповідну текстову довідку.

    Висновок

    Додавання текстової довідки окремо до кожної сторінки адміністративної частини може бути дуже корисним, щоб користувачі, які потребують у такій довідці, кожен раз не поверталися за нею на головну сторінку панелі управління.

    У цій статті ми дізналися, яким чином можна створити метабокси з текстовою довідкою на екранах редагування, а також як використовувати хук edit_form_after_title для додавання довідки безпосередньо над вікном редагування.

    Переклад статті “Customizing the WordPress Admin: Help Text» був підготовлений дружною командою проекту Сайтостроение від А до Я.

    ОСТАВЬТЕ ОТВЕТ

    Please enter your comment!
    Please enter your name here