Идем в настройки плагина "Admin Menu Editor", нажимаем "+NewMenu", что бы создать новый раздел, пишем имя этому разделу и в поле "URL" вставляем скопированную нужную URL которая будет открываться при нажатии на это меню. Нажимаем "Show advanced options" и выбираем для этого раздела иконку.
Чтобы добавить пункт меню администрирование, необходимо сделать три вещи в файле 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 '</pre>
<div class="wrap">';
echo '
Here is where the form would go if I actually had options.
';
echo '</div>
<pre>
';
}
Пример создания подменю к какому либо разделу. В данном случае к разделу "Записи":
Пример
<?php
add_theme_support( 'post-thumbnails' );
add_theme_support('menus');
add_action('admin_menu', 'firm_menu');
function firm_menu(){
add_submenu_page('edit.php', 'Добавить фирму', 'Добавить фирму', 'manage_options', 'firm-new', 'print_page_function', 1);
function print_page_function() {}
}
?>
Этот метод выручил меня тогда, когда нужно было создать для клиента еще один пункт в разделе "Записи", который позволил бы создавать новую запись сразу с проставленным разделом для создаваемой записи.
Пример
<?php
add_theme_support( 'post-thumbnails' );
add_theme_support('menus');
/**
* Set default category.
*
* @wp-hook pre_option_default_category
* @return string Category slug
*/
function t5_get_default_cat_by_url(){
if ( ! isset( $_GET['post_cat'] ) )
return FALSE;
return array_map( 'sanitize_title', explode( ',', $_GET['post_cat'] ) );
}
add_action( 'wp_insert_post', 't5_draft_category', 10, 2 );
/**
* Add category by URL parameter to auto-drafts.
*
* @wp-hook wp_insert_post
* @param int $post_ID
* @param object $post
* @return WP_Error|array An error object or term ID array.
*/
function t5_draft_category( $post_ID, $post ){
if ( ! $cat = t5_get_default_cat_by_url()
or 'auto-draft' !== $post->post_status )
return;
// return value will be used in unit tests only.
return wp_set_object_terms( $post_ID, $cat, 'category' );
}
add_filter( 'pre_option_default_category', 't5_get_default_cat_by_url' );
add_action('admin_menu', 'firm_menu');
function firm_menu() {
global $submenu;
$submenu['edit.php'][500] = array( 'Добавить фирму', 'manage_options' , '/wp-admin/post-new.php?post_cat=gotovye-firmy' );
}
?>