Hi Ich baue eine Plugin-Optionen-Seite. Was ich wirklich gerne tun würde, ist das Implementieren von wiederholbaren Tabs (von denen ich weiß, dass sie mit der Einstellungs-API möglich sind), aber mit einer Wendung, die ich bisher in keinem Optionspanel gesehen habe. Ich möchte im Handumdrehen neue Tabs erstellen, genau wie der Abschnitt “Menüs” in der Admin-Benutzeroberfläche funktioniert.
Gibt es einen Standard Weg dies zu tun?
WordPress Tabs sind nicht standardmäßige, statische HTML-Markups. Sie können das Markup nur innerhalb Ihrer functions.php
Themendatei oder innerhalb Ihres Plugins hinzufügen.
Tab #1 Tab #2 Tab #2
In diesem Helfer-Plugin (WordPress Admin Style) finden Sie die classnreferenzen für das Standard-Markup des Admin-Bereichs.
Vollständiger Snapshot des Plugins Der vorherige Snapshot ist ein Detail, das sich am Ende dieses Snapshots befindet.
Klicken um zu vergrößern:
Erstellen Sie ein Array von Tabs, die Sie auf Ihrer Admin-Seite erstellen möchten. Dies würde höchstwahrscheinlich Ihre Menüseiten enthalten, die von Ihrem Plugin hinzugefügt wurden. Die Array-Schlüssel wären der Seiten-Slug und die Array-Werte wären der Tab-Text.
Echo die function, wo die Registerkarten in Ihrem Plugin angezeigt werden sollen.
< ?php // Create WP Admin Tabs on-the-fly. function admin_tabs($tabs, $current=NULL){ if(is_null($current)){ if(isset($_GET['page'])){ $current = $_GET['page']; } } $content = ''; $content .= ''; foreach($tabs as $location => $tabname){ if($current == $location){ $class = ' nav-tab-active'; } else{ $class = ''; } $content .= ''.$tabname.''; } $content .= ''; return $content; } $my_plugin_tabs = array( 'my-plugin-overview' => 'Overview', 'my-plugin-settings' => 'Settings', 'my-plugin-uninstall' => 'Uninstall' ); echo admin_tabs($my_plugin_tabs); ?>
Ich habe Michaels Lösung aktualisiert, sodass sie als Registerkarte auf einer einzelnen Seite verwendet werden kann. Durch Aufruf von main_function()
werden die Registerkarten ausgegeben, die die im Abschnitt $my_plugin_tabs
Dateien verknüpfen und ausgeben.
Zum Beispiel, indem Sie auf Einstellungen klicken, haben Sie den Reiter laden Sie die settings.php
und lassen Sie sich die Registerkarten anzeigen. Ich dachte, es könnte helfen, das auch hochgeladen zu haben:
< ?php // Create WP Admin Tabs on-the-fly function admin_tabs( $page, $tabs, $current=NULL ) { if ( is_null( $current ) ) { if ( isset( $_GET['tab'] ) ) { $current = $_GET['tab']; } } $content = ''; $content .= ''; foreach( $tabs as $tab => $tabname ) { if ( $current == $tab ) { $class = ' nav-tab-active'; } else { $class = ''; } $content .= '' . $tabname . ''; } $content .= ''; echo $content; if ( ! $current ) $current = key( $tabs ); require_once( $current . '.php' ); return; } function main_function() { $my_plugin_tabs = array( 'bundles' => 'Bundles', 'settings' => 'Settings', ); $my_plugin_page = 'bundles'; echo admin_tabs( $my_plugin_page, $my_plugin_tabs ); }