| | 1461 | |
| | 1462 | /** |
| | 1463 | * Get the url to access a particular menu page based on the slug it was registered with |
| | 1464 | * on the network admin in a multisite install. |
| | 1465 | * |
| | 1466 | * If the slug hasn't been registered properly no url will be returned |
| | 1467 | * |
| | 1468 | * @since 3.0.0 |
| | 1469 | * |
| | 1470 | * @param string $menu_slug The slug name to refer to this menu by (should be unique for this menu) |
| | 1471 | * @param bool $echo Whether or not to echo the url - default is true |
| | 1472 | * @return string the url |
| | 1473 | */ |
| | 1474 | function network_menu_page_url( $menu_slug, $echo = true ) { |
| | 1475 | global $_parent_pages; |
| | 1476 | |
| | 1477 | if ( isset( $_parent_pages[$menu_slug] ) ) { |
| | 1478 | $parent_slug = $_parent_pages[$menu_slug]; |
| | 1479 | if ( $parent_slug && ! isset( $_parent_pages[$parent_slug] ) ) { |
| | 1480 | $url = network_admin_url( add_query_arg( 'page', $menu_slug, $parent_slug ) ); |
| | 1481 | } else { |
| | 1482 | $url = network_admin_url( 'admin.php?page=' . $menu_slug ); |
| | 1483 | } |
| | 1484 | } else { |
| | 1485 | $url = ''; |
| | 1486 | } |
| | 1487 | |
| | 1488 | $url = esc_url( $url ); |
| | 1489 | |
| | 1490 | if ( $echo ) |
| | 1491 | echo $url; |
| | 1492 | |
| | 1493 | return $url; |
| | 1494 | } |
| | 1495 | |