WP_ADMIN_BAR::ADD_NODE() — Добавление узла в меню

WP_ADMIN_BAR::ADD_NODE() — Добавление узла в меню

Введение

Метод WP_ADMIN_BAR::ADD_NODE() позволяет добавить новый элемент меню в админ-панели WordPress. Это база, на которой строятся возможные расширения интерфейса для администраторов сайта.

Общая информация

  • Метод класса: WP_Admin_Bar
  • Доступен с: WordPress 3.1.0
  • Возвращает: null (ничего)

Синтаксис

Чтобы использовать этот метод, создайте объект WP_Admin_Bar и добавьте узел, передав необходимые аргументы.

$WP_Admin_Bar = new WP_Admin_Bar();
$WP_Admin_Bar->add_node( $args );

Аргументы

Метод принимает массив параметров, который должен включать следующие ключи:

  • id (string) — уникальный идентификатор элемента меню.
  • title (string) — название узла.
  • parent (string) — (необязательно) ID родительского элемента.
  • href (string) — (необязательно) ссылка на элемент.
  • group (true|false) — (необязательно) указывает, является ли узел группой. По умолчанию false.
  • meta (array) — (необязательно) мета-данные, включая следующие ключи: 'html', 'class', 'rel', 'lang', 'dir', 'onclick', 'target', 'title', 'tabindex', 'menu_title'. По умолчанию — пустая строка.

Примеры использования

Пример 1: Добавление ссылки и дочерней ссылки в админ-панеле

Этот код добавляет ссылку в админ-панель, а также дочернюю ссылку, относящуюся к первой.

add_action('admin_bar_menu', 'my_admin_bar_menu', 30);

function my_admin_bar_menu($wp_admin_bar) {
    $wp_admin_bar->add_menu(array(
        'id'    => 'menu_id',
        'title' => 'Внешняя ссылка',
        'href'  => 'http://example.com',
    ));

    // Дочерняя ссылка
    $wp_admin_bar->add_menu(array(
        'parent' => 'menu_id', // ID родительской ссылки
        'id'     => 'some_id', // уникальный ID дочерней ссылки
        'title'  => 'Субссылка',
        'href'   => 'http://example.com/subpage',
    ));
}

Пример 2: Добавление ссылки на страницу плагинов

Этот код добавляет ссылку на страницу плагинов в меню сайта.

if (!is_admin()) {
    add_action('admin_bar_menu', function($wp_admin_bar) {
        $wp_admin_bar->add_menu(array(
            'parent' => 'site-name', // ID родительского элемента
            'id'     => 'plugins_link', // уникальный ID
            'title'  => 'Плагины',
            'href'   => admin_url('plugins.php'),
        ));
    }, 100);
}

Пример 3: Как узнать ID элемента меню

Чтобы настроить элемент меню, сначала нужно узнать его ID. Для этого щелкните правой кнопкой мыши на ссылке в меню браузера и выберите "Проверить элемент", чтобы открыть инспектор кода.

Пример ID:

  • site-name — Название сайта
  • dashboard — Панель управления
  • plugins — Плагины

Пример 4: Добавление нескольких ссылок

Этот код добавляет ссылки на медиатеку и плагины в выпадающее меню сайта.

add_action('admin_bar_menu', 'add_links_to_admin_bar', 999);

function add_links_to_admin_bar($admin_bar) {
    // Ссылка на медиатеку
    $args = array(
        'parent' => 'site-name',
        'id'     => 'media-library',
        'title'  => 'Медиатека',
        'href'   => esc_url(admin_url('upload.php')),
        'meta'   => false,
    );
    $admin_bar->add_node($args);

    // Ссылка на плагины
    $args = array(
        'parent' => 'site-name',
        'id'     => 'plugins',
        'title'  => 'Плагины',
        'href'   => esc_url(admin_url('plugins.php')),
        'meta'   => false,
    );
    $admin_bar->add_node($args);
}

Изменения

  • С 3.1.0 — Метод был введён.
  • С 4.5.0 — Добавлена возможность передавать мета-данные 'lang' и 'dir'.
  • С 6.5.0 — Добавлена возможность передавать 'menu_title' для названия ARIA меню.

Если у вас остались вопросы или вы хотите попробовать свои примеры, просто добавьте их в нужное место вашего сайта.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *