Intereting Posts
Пользовательский шаблон таксономии не работает Каков правильный способ перенаправления всего трафика на HTTPS? Продать доступ к форме WYSIWYG ясно: оба Добавить сайт посещения на панель инструментов вместо того, чтобы находиться в выпадающем меню Добавление JS на одну страницу Изменение даты публикации в мета-окне Сохранение предварительно дезинфицированного имени файла вложения в качестве заголовка или надписи Отобразить изображение сообщения в размере, определяемом add_image_size () Удаление категории из администратора WordPress полностью удаляет ее из базы данных? Как получить пользовательские типы сообщений, чтобы хорошо играть с schema.org (иначе как обернуть содержимое в разметке schema.org)? Присоединитесь к wp-login.php и xmlrpc.php Могут ли плагины WordPress «Поговорить друг с другом»? Выход из WordPress только в том случае, если пользователь выйдет из системы или если пользователь удаляет историю браузера WP_Query сортировать по комментариям метаданных

Добавить post-new.php? Post_cat = catslug в меню администратора

Я дал возможность использовать post-new.php? Post_cat = catslug в wordpress admin для создания нового сообщения с предварительно заполненной категорией, используя здесь ответ: Как добавить категорию в: 'wp-admin / post-new .php?

Теперь я хочу создать несколько пунктов меню в этом формате в разделе «Сообщения» -> «Добавить новый» пункт меню администратора. Таким образом, меню будет:

ПОСТЫ

  • Все сообщения
  • Добавить новое
  • Добавить новый профиль -> post-new.php? Post_cat = профиль
  • Добавить новые новости -> post-new.php? Post_cat = news
  • Добавить новый шаг -> post-new.php? Post_cat = pitch
  • категории
  • и т.п.

Я смог добавить один элемент в нижней части меню с помощью этого кода в functions.php

add_action( 'admin_menu' , 'admin_menu_new_items' ); function admin_menu_new_items() { global $submenu; $submenu['edit.php'][500] = array( 'Add new profile', 'manage_options' , '/wp-admin/post-new.php?post_cat=pitches' ); } 

Вопросов:

  1. Это лучший способ сделать это? Или мне нужно использовать одну из функций, описанную здесь http://codex.wordpress.org/Administration_Menus . Я пробовал некоторые, но я не мог заставить его работать так, как я хочу.
  2. Если приведенный выше код является лучшим способом, как добавить дополнительные элементы?
  3. Как добавить элемент меню ниже «Добавить новый» (вместо «тегов»)

Solutions Collecting From Web of "Добавить post-new.php? Post_cat = catslug в меню администратора"

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

 add_action( 'admin_menu' , 'admin_menu_new_items', 1 ); function admin_menu_new_items() { global $submenu; wp_die( '<pre>' . var_export( $submenu['edit.php'], true ) . '</pre>' ); } 

Я получаю это:

 array ( 5 => array ( 0 => 'All Posts', 1 => 'edit_posts', 2 => 'edit.php', ), 10 => array ( 0 => 'Add New', 1 => 'edit_posts', 2 => 'post-new.php', ), 15 => array ( 0 => 'Categories', 1 => 'manage_categories', 2 => 'edit-tags.php?taxonomy=category', ), 16 => array ( 0 => 'Tags', 1 => 'manage_categories', 2 => 'edit-tags.php?taxonomy=post_tag', ), ) 

Индекс «10» – это элемент «Добавить новый». Чтобы добавить новые элементы подменю, используйте индексы 11, 12 и 13:

  $submenu['edit.php'][11] = array( 'Add New Profile', 'manage_options' , '/wp-admin/post-new.php?post_cat=pitches' ); $submenu['edit.php'][12] = array( 'Add New News', 'manage_options' , '/wp-admin/post-new.php?post_cat=news' ); $submenu['edit.php'][13] = array( 'Add New Pitch', 'manage_options' , '/wp-admin/post-new.php?post_cat=pitch' ); 

Когда WordPress добавляет элементы подменю на панель управления, он обрабатывает $submenu как ассоциативный массив. Любые элементы, добавленные в массив edit.php будут добавлены в конец массива независимо от используемого ключа. Используйте ksort (), чтобы заказать ключи.

  ksort( $submenu['edit.php'], SORT_NUMERIC ); 

Объединяя все это:

 add_action( 'admin_menu' , 'admin_menu_new_items', 1 ); function admin_menu_new_items() { global $submenu; $submenu['edit.php'][11] = array( 'Add New Profile', 'manage_options' , '/wp-admin/post-new.php?post_cat=pitches' ); $submenu['edit.php'][12] = array( 'Add New News', 'manage_options' , '/wp-admin/post-new.php?post_cat=news' ); $submenu['edit.php'][13] = array( 'Add New Pitch', 'manage_options' , '/wp-admin/post-new.php?post_cat=pitch' ); // WordPress treats $submenu as an associative array and does not sort it first. // We have to sort keys into the order we want them to show up. ksort( $submenu['edit.php'], SORT_NUMERIC ); }