Прочитав в другом месте в стеке два плагина WP, форсирующих одинаковые позиции меню (с вероятностью того, что один из них тогда не появится), мне интересно, как я могу контролировать положение пунктов меню, добавляемых плагинами.
Я уже использую функцию, которая, кажется, обрабатывает такие элементы подменю в «настройках», и другую функцию, чтобы переупорядочить элементы «верхнего уровня» по умолчанию (сообщения, страницы, темы, плагины, настройки и т. Д.), Но не меняет расположение таких предметов добавляются плагинами.
function custom_menu_order() {
return array(
//Add items here in desired order.
);
}
add_filter( 'custom_menu_order', '__return_true' );
add_filter( 'menu_order', 'custom_menu_order' );
В качестве примера, из двух пунктов меню верхнего уровня, добавленных WooCommerce, один появляется над элементом, добавленным ContactForm7, а другой - ниже, и было бы неплохо изменить их порядок соответствующим образом - а также, чтобы иметь возможность лучше изменить порядок элементов которые не заставляют позицию меню и вместо этого появляются внизу.
Я нахожу, что это нормально работает для переупорядочения элементов по умолчанию и 'edit.php? Post_type = ...', но те, которые имеют 'admin.php? Page = ...', не переупорядочивают.
Когда моя функция повторного заказа отключена, два элемента WooCommerce ('edit.php? Post_type = product' и 'edit.php? Post_type = shop_order') объединяются вместе, как и предполагалось, но когда функция активируется, они разделяются by ContactForm7 ('admin.php? page = wpcf7').
И одна ('edit.php? Post_type = shop_order') из CPT WooCommerce не будет переупорядочена, хотя другая ('edit.php? Post_type = product') делает это не так.
Существующие ответы хороши, но если вы добавите новый пользовательский тип записи, вам придется снова и снова редактировать эти функции.
Чтобы исправить это, я разработал эту маленькую функцию. Просто определите ваш
$new_positions
внутриmy_new_menu_order
функции:источник
когда вы создаете тип записи с помощью register_post_type (), вы можете установить позицию меню:
Если элементы имеют одинаковую позицию меню, они сортируются в алфавитном порядке.
в вашем собственном плагине вы можете установить уровень. Если вы пытаетесь изменить позицию меню плагина, который вы не создали, у многих из них он может быть подключаемым, или вы можете редактировать их вызовы.
источник