function settings_page_output() { $arr_settings_tabs = $this->getSettingsTabs(); ?> <div class="wrap"> <h1 class="SimpleHistoryPageHeadline"> <div class="dashicons dashicons-backup SimpleHistoryPageHeadline__icon"></div> <?php _e("Simple History Settings", "simple-history"); ?> </h1> <?php $active_tab = isset($_GET["selected-tab"]) ? $_GET["selected-tab"] : "settings"; $settings_base_url = menu_page_url(SimpleHistory::SETTINGS_MENU_SLUG, 0); ?> <h2 class="nav-tab-wrapper"> <?php foreach ($arr_settings_tabs as $one_tab) { $tab_slug = $one_tab["slug"]; printf('<a href="%3$s" class="nav-tab %4$s">%1$s</a>', $one_tab["name"], $tab_slug, esc_url(add_query_arg("selected-tab", $tab_slug, $settings_base_url)), $active_tab == $tab_slug ? "nav-tab-active" : ""); } ?> </h2> <?php // Output contents for selected tab $arr_active_tab = wp_filter_object_list($arr_settings_tabs, array("slug" => $active_tab)); $arr_active_tab = current($arr_active_tab); // We must have found an active tab and it must have a callable function if (!$arr_active_tab || !is_callable($arr_active_tab["function"])) { wp_die(__("No valid callback found", "simple-history")); } $args = array("arr_active_tab" => $arr_active_tab); call_user_func_array($arr_active_tab["function"], $args); ?> </div> <?php }