Intereting Posts
восстановление базы данных WordPress – неработающая ссылка Отображать заголовок текущей категории на странице категории Избавление от боковой панели в профилях участника BuddyPress Глядя на ограничение загрузки файлов Назначение функций WP, которые эхо-переменные PHP Необходим синтаксис: запрос таксономии Исключить сообщения с определенными метаданными из результатов поиска Редактирование файла formatting.php и файла functions.php? Есть ли способ использовать get_template_part () с папками? Использовать WP 3.1 «Внутренний привязку» «виджет» как мета-бокс Когда вы устанавливаете таблицу стилей, можно ли удалить атрибут типа? Файлы cookie в multisite, где сетевые сайты имеют собственное доменное имя Обновленные по дате пересылки сообщений, которые больше не существуют Непрерывное воспроизведение звука на страницах Вставка запросов Mysql в массив с использованием класса wp_list_table

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

У меня есть рабочий код, который добавляет вкладку справки на все экраны администратора, у которых уже есть варианты справки или экран справки. Однако экраны, которые не имеют контекстной справки, такие как плагин, который я пишу, также не распознают add_action call – как я могу гарантировать, что help_tab появится на каждом экране администратора?

Некоторый простой код – но это более или менее точно так же, как в Codex .

Я добавляю действие в класс __construct

// add help tab to admin UI ## add_action( "load-{$GLOBALS['pagenow']}", array( $this, 'add_help_tab' ), 20 ); 

Это вызывает метод в классе «add_help_tab»:

 public function add_help_tab() { foreach ( $this->help_tabs as $id => $data ) { get_current_screen()->add_help_tab( array( 'id' => $id ,'title' => __( $data['title'], 'q_support' ) // Use the content only if you want to add something // static on every help tab. Example: Another title inside the tab ,'callback' => array( $this, 'callback_function' ) ) ); } } 

Что, в свою очередь, вызывает метод обратного вызова «callback_function» – все работает так, как ожидалось, за исключением экранов без ранее существовавших вкладок справки – есть ли способ обеспечить, чтобы каждая страница включала вкладку вкладки справки?

Solutions Collecting From Web of "Как добавить вкладку справки ко всем страницам администрирования, включая плагины"

Таким образом вы можете добавлять вкладки справки ко всем страницам администратора – независимо от того, есть ли они, или нет:

 add_action('in_admin_header', 'wpse_124979_add_help_tabs'); function wpse_124979_add_help_tabs() { if ($screen = get_current_screen()) { $help_tabs = $screen->get_help_tabs(); $screen->remove_help_tabs(); $screen->add_help_tab(array( 'id' => 'my_help_tab', 'title' => 'My Help', 'content' => '<p>My help content...</p>', )); if (count($help_tabs)) foreach ($help_tabs as $help_tab) $screen->add_help_tab($help_tab); } } // function wpse_124979_add_help_tabs 

В настройках OOP это должно выглядеть примерно так:

 // This could go in your constructor, for instance add_action('in_admin_header', array($this, 'add_help_tabs')); function add_help_tabs() { if ($screen = get_current_screen()) { $help_tabs = $screen->get_help_tabs(); $screen->remove_help_tabs(); foreach ($this->help_tabs as $id => $data) $screen->add_help_tab(array( 'id' => $id, 'title' => __($data['title'], 'q_support'), 'callback' => array($this, 'callback_function'), )); if (count($help_tabs)) foreach ($help_tabs as $help_tab) $screen->add_help_tab($help_tab); } } // function add_help_tabs 

in_admin_header – это в значительной степени последний крюк действия перед in_admin_header экрана (и, таким образом, помощь).

Итак, что вы получаете от этого?

  • Добавьте вкладки справки на каждую страницу администратора (ядро, плагин, другое);
  • ваши вкладки будут отображаться до / поверх исходных вкладок справки (если таковые имеются);
  • даже если никаких вкладок для справки вообще нет, ваши вкладки будут добавлены в метафайл экрана.