Как изменить положение меню администратора "Медиа"?
Я хотел бы изменить приоритет/порядок меню на странице администратора "Медиа". Есть ли способ изменить это с помощью apply_filter?
Есть ли способ изменить приоритет только "Медиа" страницы без необходимости перечислять все страницы в menu_order?
Спасибо
3 answers
Существует комбинация двух фильтров, menu_order
выполняет эту работу, но вы также используете custom_menu_order
для включения menu_order
.
function wpse_233129_custom_menu_order() {
return array( 'index.php', 'upload.php' );
}
add_filter( 'custom_menu_order', '__return_true' );
add_filter( 'menu_order', 'wpse_233129_custom_menu_order' );
Это поставит upload.php (экран Мультимедиа) сразу после панели мониторинга, а затем последуют другие пункты меню верхнего уровня.
Если вы хотите разместить носитель в другом месте, просто перечислите все остальные экраны, которые должны предшествовать ему в массиве.
В качестве альтернативы вы можете напрямую обратиться к глобальному массиву $меню WP:
function wpse_233129_admin_menu_items() {
global $menu;
foreach ( $menu as $key => $value ) {
if ( 'upload.php' == $value[2] ) {
$oldkey = $key;
}
}
$newkey = 26; // use whatever index gets you the position you want
// if this key is in use you will write over a menu item!
$menu[$newkey]=$menu[$oldkey];
$menu[$oldkey]=array();
}
add_action('admin_menu', 'wpse_233129_admin_menu_items');
Обратите внимание на комментарий к возможность перезаписи другого пункта меню. Кодирование в поиске индекса массива, который не конфликтует, оставлено в качестве упражнения для читателя. Конечно, это не проблема, если вы используете первый метод.
Есть что-то в том, чтобы вот так возиться с глобалами WP, что заставляет меня чувствовать себя грязным. Изменения во внутренней работе WP могут все испортить для вас. Используйте абстракции, предоставляемые хуками и API, когда можете.
Быстрый Поиск в Google дал мне несколько результатов, и мне удалось найти простое решение.
Приведенный ниже код взят с веб-сайта Учебника по простому веб-дизайну, но я вставлю его ниже на случай, если эта ссылка когда-нибудь сломается.
function reorder_admin_menu( $__return_true ) {
return array(
'index.php', // Dashboard
'edit.php?post_type=page', // Pages
'edit.php', // Posts
'upload.php', // Media
'themes.php', // Appearance
'separator1', // --Space--
'edit-comments.php', // Comments
'users.php', // Users
'separator2', // --Space--
'plugins.php', // Plugins
'tools.php', // Tools
'options-general.php', // Settings
);
}
add_filter( 'custom_menu_order', 'reorder_admin_menu' );
add_filter( 'menu_order', 'reorder_admin_menu' );
Вы можете изменить порядок меню, просто переместив media.php
туда, где вы хотите, чтобы оно отображалось
Как вы можете видеть, приведенный выше код хорошо прокомментирован и показывает вам, какие .php
файлы являются какой ссылкой:)
После получения повторяющихся ошибок PHP с приведенным выше кодом я пошел с плагином,
Редактор меню администратора. Я не только могу изменить порядок меню, но также могу скрывать или перемещать меню, добавленные плагинами.