Главная Новости

Панель wordpress

Опубликовано: 29.03.2017

видео Панель wordpress

Скрыть/показать админ-бар на uCoz

Здрасти, сейчас побеседуем о том, как добавить новый пункт меню в панели управления wordpress (админке) без использования плагинов.


Панель wordpress


Скачать исходники для статьи можно ниже


Для этого нужно подкорректировать файл functions.php (либо же сделать плагин).

 

Чтоб добавить пункт меню администрирование, нужно сделать три вещи в файле functions.php:

1. Сделать функцию, которая содержит код для сотворения меню (в примере ниже — это function my_plugin_menu).

2. Зарегистрировать функцию, использующую хук «действие» (add action) с параметром admin_menu, при всем этом данных хук должен размещаться выше функции, обозначенной в пт 1.

3. Сделать HTML для этой странички, которая отображается при нажатии на новый пункт меню.

 

Вот пример кода сотворения пт меню (верхнего уровня) с заглавием «My Plugin» (сможете воткнуть его в файл functions.php и поглядеть, что получиться — лучше это делать на тестовом веб-сайте, так как веб-сайт может сломаться): /** Пункт 2. */ add_action( 'admin_menu', 'my_plugin_menu' ); /** Пункт 1. */ function my_plugin_menu() { add_menu_page( 'My Plugin Options', 'My Plugin', 'manage_options', 'my-unique-identifier', 'my_plugin_options' ); } /** Пункт 3. */ function my_plugin_options() { if ( !current_user_can( 'manage_options' ) ) { wp_die( __( 'You do not have sufficient permissions to access this page.' ) ); } echo '

'; echo ' Here is where the form would go if I actually had options. '; echo '
';
}

Сейчас давайте более тщательно разберем данный код.

 

Пункт 1: функция my_plugin_menu()

Заглавие функции может быть хоть каким, а не только лишь my_plugin_menu.

В данной функции мы указываем код - add_menu_page () — это стандартная функция wordpress, которая добавляет пункт меню верхнего уровня (такие же как «Панель», «Записи», «Медиафайлы», «Странички» и др., которые вы сможете созидать в левом меню вашей админки ).

 

Не считая данной функции тут можно также использовать и другие:

add_submenu_page() — добавляет подменю к пт меню верхнего уровня, другими словами к примеру: если взять пункт «Записи», то у него есть 4 подпункта — «Все записи», «Добавить новейшую», «Рубрики» и «Метки».

 

Также есть более узенькие функции:

add_options_page() — добавляет подпункт в пункт «Опции» (Характеристики, Settings).

add_management_page() — добавляет подпункт в пункт «Инструменты» (Tools).

add_theme_page() — добавляет подпункт в пункт «Внешний облик» (Appearance).

 

Для проверки того, как работают три последних функции, сможете поменять в вышеуказанном примере код add_menu_page на какой-то из них, ну к примеру на add_options_page.

 

У каждой из 5 вышеуказанных функций есть свои характеристики — атрибуты: add_menu_page(page_title, menu_title, access_level/capability, file, [function]); add_submenu_page(parent, page_title, menu_title, access_level/capability, file, [function]); add_options_page(page_title, menu_title, access_level/capability, file, [function]); add_management_page(page_title, menu_title, access_level/capability, file, [function]); add_theme_page( page_title, menu_title, access_level/capability, file, [function]);

 

Видите ли практически все атрибуты одинаковые, давайте разглядим их подробнее:

page_title — это заголовок странички, когда пункт меню активен.

menu_title — заглавие пт/подпункта меню.

access_level/capability — данный атрибут задает, кто сумеет созидать данный пункт/подпункт меню, но он указывается не при помощи ролей юзеров, а их способностей, к примеру: если вы желаете указать, что данный пункт/подпункт может созидать только администратор, то указывается - manage_options (управлять опциями, параметрами).

Более тщательно о способностях для каждой роли юзеров читайте здесь — «codex.wordpress.org/Roles_and_Capabilities».

file - PHP файл, который будет отвечает за отображение содержимого странички данного пт/подпункта меню.

[function] — функция, которая отвечает за отображение содержимого странички данного пт/подпункта меню.

parent — имя admin файла, который показывает меню верхнего уровня, в который вы желаете воткнуть подменю либо файл плагина, если это подменю вдаваясь в пользовательское меню верхнего уровня. (Примеры: index.php, post.php, edit.php, themes.php, plugins.php и др.)

 

Пункт 2: зацепка add_action

Тут просто идет зацепка (хук) на стандартную функцию wordpress для вывода меню — admin_menu.

Другими словами если wordpress выводит меню в админке, то он должен выполнить нашу функцию (в данном примере - my_plugin_menu).

 

Пункт 3: function my_plugin_options

Тут у нас прописывается последующее — если вы администратор, то необходимо вывести последующее: echo ' Here is where the form would go if I actually had options. ';

Другими словами предложение — «Here is where the form would go if I actually had options.» — заместо него можно написать чего-нибудть на российском, также можно использовать код php.

 

Пример 2 на закрепление вышеуказанного материала.

Вот более непростой пример: // Hook for adding admin menus add_action('admin_menu', 'mt_add_pages'); // action function for above hook function mt_add_pages() { // Add a new submenu under Options: add_options_page('Test Options', 'Test Options', 8, 'testoptions', 'mt_options_page'); // Add a new submenu under Manage: add_management_page('Test Manage', 'Test Manage', 8, 'testmanage', 'mt_manage_page'); // Add a new top-level menu (ill-advised): add_menu_page('Test Toplevel', 'Test Toplevel', 8, __FILE__, 'mt_toplevel_page'); // Add a submenu to the custom top-level menu: add_submenu_page(__FILE__, 'Test Sublevel', 'Test Sublevel', 8, 'sub-page', 'mt_sublevel_page'); // Add a second submenu to the custom top-level menu: add_submenu_page(__FILE__, 'Test Sublevel 2', 'Test Sublevel 2', 8, 'sub-page2', 'mt_sublevel_page2'); } // mt_options_page() displays the page content for the Test Options submenu function mt_options_page() { echo "

Test Options

"; } // mt_manage_page() displays the page content for the Test Manage submenu function mt_manage_page() { echo "

Test Manage

"; } // mt_toplevel_page() displays the page content for the custom Test Toplevel menu function mt_toplevel_page() { echo "

Test Toplevel

"; } // mt_sublevel_page() displays the page content for the first submenu // of the custom Test Toplevel menu function mt_sublevel_page() { echo "

Test Sublevel

"; } // mt_sublevel_page2() displays the page content for the second submenu // of the custom Test Toplevel menu function mt_sublevel_page2() { echo "

Test Sublevel 2

"; }

Добавляет пункт верхнего уровня «Test Top Level» с 3 подпунктами в меню панели управления, также добавляет подпункт «Test options» в пункт «Опции» и подпункт «Test Manage» в пункт «Инструменты».

Введите собственный email адресок для того, чтоб подписаться на мой блог:


Редактирование записи на www.livejournal.ru (6/7)

rss