Добавление пунктов меню в админ панель WordPress

При помощи плагина "Admin Menu Editor"

Идем в настройки плагина "Admin Menu Editor", нажимаем "+NewMenu", что бы создать новый раздел, пишем имя этому разделу и в поле "URL" вставляем скопированную нужную URL которая будет открываться при нажатии на это меню. Нажимаем "Show advanced options" и выбираем для этого раздела иконку.

 

При помощи кода через function.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 '</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() {}
}
?>

 

При помощи кода через function.php с добавлением меню в массив 

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

Пример

<?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' ); 
} 
?>

 

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

Для связи со мной можно воспользоваться любой социальной сетью,
или написать на почту:

С моим резюме можно ознакомиться по ссылке:

© 2020-2024 Портфолио Юдина Александра г.Пенза. Все права защищены