Skip to content

Instantly share code, notes, and snippets.

@1forh
Created October 12, 2022 15:38
Show Gist options
  • Save 1forh/48d036b02ccc61c2d6cdd70e362f0f49 to your computer and use it in GitHub Desktop.
Save 1forh/48d036b02ccc61c2d6cdd70e362f0f49 to your computer and use it in GitHub Desktop.
<?php
add_action('admin_menu', 'admin_menu_mobile');
add_action('admin_menu', 'admin_menu_hoops');
add_action('admin_menu', 'admin_menu_football');
add_action('admin_menu', 'admin_menu_remove_items');
function admin_menu_remove_items () {
remove_menu_page('edit.php');
remove_menu_page('edit.php?post_type=page');
remove_menu_page('edit-comments.php');
remove_menu_page('upload.php');
}
function admin_menu_mobile() {
$slug = "edit.php?post_type=mobile_page";
$menu = array(
array(
'title' => 'Pages',
'slug' => $slug,
'capability' => 'edit_posts'
),
array(
'title' => 'Media',
'slug' => 'upload.php',
'capability' => 'upload_files'
)
);
_generate_menu('Mobile', 'mobile', 2, "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzODQgNTEyIiBmaWxsPSJ3aGl0ZSI+PHBhdGggZD0iTTMwNCAwaC0yMjRjLTM1LjM1IDAtNjQgMjguNjUtNjQgNjR2Mzg0YzAgMzUuMzUgMjguNjUgNjQgNjQgNjRoMjI0YzM1LjM1IDAgNjQtMjguNjUgNjQtNjRWNjRDMzY4IDI4LjY1IDMzOS4zIDAgMzA0IDB6TTMyMCA0NDhjMCA4LjgyMi03LjE3OCAxNi0xNiAxNmgtMjI0QzcxLjE4IDQ2NCA2NCA0NTYuOCA2NCA0NDhWNjRjMC04LjgyMiA3LjE3OC0xNiAxNi0xNmgyMjRDMzEyLjggNDggMzIwIDU1LjE4IDMyMCA2NFY0NDh6TTIyNCA0MDBIMTYwYy04LjgzNiAwLTE2IDcuMTY0LTE2IDE2czcuMTY0IDE2IDE2IDE2aDY0YzguODM4IDAgMTYtNy4xNjQgMTYtMTZTMjMyLjggNDAwIDIyNCA0MDB6Ii8+PC9zdmc+", $slug, $menu);
}
function admin_menu_hoops() {
_generate_menu('Hoops', 'hoops', 2, "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBmaWxsPSJ3aGl0ZSI+PHBhdGggZD0iTTg2LjYgNjRDMTE5IDM1LjUgMTU4LjYgMTUgMjAyLjMgNS42QzIwNiAxOS4xIDIwOCAzMy4zIDIwOCA0OGMwIDM4LjQtMTMuNSA3My43LTM2LjEgMTAxLjNMODYuNiA2NHpNNjQgODYuNmw4NS4yIDg1LjJDMTIxLjcgMTk0LjUgODYuNCAyMDggNDggMjA4Yy0xNC43IDAtMjguOS0yLTQyLjQtNS43QzE1IDE1OC42IDM1LjUgMTE5IDY0IDg2LjZ6TTI1NiAwYzY0LjkgMCAxMjQuMiAyNC4yIDE2OS40IDY0TDI1NiAyMzMuNCAxOTQuNiAxNzJDMjIyLjkgMTM4LjUgMjQwIDk1LjMgMjQwIDQ4YzAtMTYuMi0yLTMyLTUuOC00Ny4xQzI0MS40IC4zIDI0OC43IDAgMjU2IDB6TTQ4IDI0MGM0Ny4zIDAgOTAuNS0xNy4xIDEyNC00NS40TDIzMy40IDI1NiA2NCA0MjUuNEMyNC4yIDM4MC4yIDAgMzIwLjkgMCAyNTZjMC03LjMgLjMtMTQuNiAuOS0yMS44QzE2IDIzOCAzMS44IDI0MCA0OCAyNDB6bTQ2My4xIDM3LjhDNDk2IDI3NCA0ODAuMiAyNzIgNDY0IDI3MmMtNDcuMyAwLTkwLjUgMTcuMS0xMjQgNDUuNEwyNzguNiAyNTYgNDQ4IDg2LjZjMzkuOCA0NS4xIDY0IDEwNC40IDY0IDE2OS40YzAgNy4zLS4zIDE0LjYtLjkgMjEuOHptLTQuNyAzMS45QzQ5NyAzNTMuNCA0NzYuNSAzOTMgNDQ4IDQyNS40bC04NS4yLTg1LjJDMzkwLjMgMzE3LjUgNDI1LjYgMzA0IDQ2NCAzMDRjMTQuNyAwIDI4LjkgMiA0Mi40IDUuN3pNMzQwLjEgMzYyLjdMNDI1LjQgNDQ4QzM5MyA0NzYuNSAzNTMuNCA0OTcgMzA5LjcgNTA2LjRDMzA2IDQ5Mi45IDMwNCA0NzguNyAzMDQgNDY0YzAtMzguNCAxMy41LTczLjcgMzYuMS0xMDEuM3pNMzE3LjQgMzQwQzI4OS4xIDM3My41IDI3MiA0MTYuNyAyNzIgNDY0YzAgMTYuMiAyIDMyIDUuOCA0Ny4xYy03LjIgLjYtMTQuNSAuOS0yMS44IC45Yy02NC45IDAtMTI0LjItMjQuMi0xNjkuNC02NEwyNTYgMjc4LjYgMzE3LjQgMzQweiIvPjwvc3ZnPg==");
}
function admin_menu_football() {
_generate_menu('Football', 'football', 2, "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBmaWxsPSJ3aGl0ZSI+PHBhdGggZD0iTTI0Ny41IDI1LjRjLTEzLjUgMy4zLTI2LjQgNy4yLTM4LjYgMTEuN0MxNDIuOSA2MS42IDk2LjcgMTAzLjYgNjYgMTUzLjZjLTE4LjMgMjkuOC0zMC45IDYyLjMtMzkuMiA5NS40TDI2NC41IDQ4Ni42YzEzLjUtMy4zIDI2LjQtNy4yIDM4LjYtMTEuN2M2Ni0yNC41IDExMi4yLTY2LjUgMTQyLjktMTE2LjVjMTguMy0yOS44IDMwLjktNjIuMyAzOS4xLTk1LjNMMjQ3LjUgMjUuNHpNNDk1LjIgMjA1LjNjNi4xLTU2LjggMS40LTExMi4yLTcuNy0xNTYuNGMtMi43LTEyLjktMTMtMjIuOS0yNi4xLTI1LjFjLTU4LjItOS43LTEwOS45LTEyLTE1NS42LTcuOUw0OTUuMiAyMDUuM3pNMjA2LjEgNDk2TDE2LjggMzA2LjdjLTYuMSA1Ni44LTEuNCAxMTIuMiA3LjcgMTU2LjRjMi43IDEyLjkgMTMgMjIuOSAyNi4xIDI1LjFjNTguMiA5LjcgMTA5LjkgMTIgMTU1LjYgNy45em01NC42LTMzMS4zYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwbDY0IDY0YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTY0LTY0Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnptLTQ4IDQ4YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwbDY0IDY0YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTY0LTY0Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnptLTQ4IDQ4YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwbDY0IDY0YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTY0LTY0Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnoiLz48L3N2Zz4=");
}
function _generate_menu($title, $key, $position, $icon, $menu_slug = null, $menu_items = []) {
global $submenu;
$menu_slug = $menu_slug ?? "edit.php?post_type=".$key."_news";
$menu_pos = $position; // whatever position you want your menu to appear
// if no menu items are passed, create a default one
if (empty($menu_items)) {
$menu_items = array(
array(
'title' => 'News',
'slug' => 'edit.php?post_type='.$key.'_news',
'capability' => 'edit_posts'
),
array(
'title' => 'Pages',
'slug' => 'edit.php?post_type='.$key.'_page',
'capability' => 'edit_posts'
),
array(
'title' => 'Media',
'slug' => 'upload.php',
'capability' => 'upload_files'
)
);
}
// create the top level menu
add_menu_page($menu_slug, $title, 'edit_posts', $menu_slug, '', "data:image/svg+xml;base64,".$icon, $menu_pos);
// loops through $menu_items
foreach ($menu_items as $menu_item) {
add_submenu_page($menu_slug, $menu_item['title'], $menu_item['title'], $menu_item['capability'], $menu_item['slug'], '');
}
}
function _flatten(array $array) {
$return = array();
array_walk_recursive($array, function($a) use (&$return) { $return[] = $a; });
return $return;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment