Ich habe eine benutzerdefinierte Admin-Menüseite namens FCC Youtube mit der Funktion add_menu_page
erstellt, die einige benutzerdefinierte Felder enthält, die ich manuell über HTML und PHP generiert habe:
code (nur der Teil, wie ich diese benutzerdefinierte Admin-Menüseite erstellt habe)
// creat admin menu page
add_action("admin_menu","youtube_menu");
function youtube_menu() {
add_menu_page('Youtube Channel Settings', 'FCC Youtube', 'edit_pages', 'youtube_channel_settings', 'youtube_channel_render_page','http://fcc.sportingpulse.com/wp-content/uploads/2013/04/youtube_icon16x16.png');
add_action('admin_init','youtube_regsettings');
}
Ich möchte viele Admin-Menüseiten wie die von mir erstellte FCC-Youtube-Seite erstellen. (FCC Vimeo, FCC Buttons usw.)
Ich wünschte, diese Seiten hätten ACF-Feldgruppen. , bedeutet, dass ich ACF-Feldgruppen erstellen und die Gruppe meinen benutzerdefinierten Admin-Menüseiten zuweisen kann. Dies funktioniert genauso wie die ACF-Options-Addon-Seite.
Mit dem ACF-Options-Addon kann ich nicht mehrere Optionen der obersten Ebene erstellen. Ich verstehe, dass ich mehrere Second-Level-Optionsseiten erstellen kann, aber ich möchte viele TOP-Level-Optionsseiten haben, aber ich kann immer noch nicht herausfinden, wie das geht!
Ich habe das Options-Add-on gekauft, kann aber nicht mehrere Optionsseiten der obersten Ebene erstellen. Ich habe nur eine übergeordnete Seite mit dem Namen "Optionen" und dann viele Unterseiten darunter. Ich möchte andere "Top-Seiten" haben Level "-Seiten haben andere Namen als" Options ", aber es scheint sehr schwierig zu sein: s,
sieh dir das an
Ich habe all diese Optionsseiten unter den übergeordneten Optionen. Ich kann sie nicht außerhalb der übergeordneten Optionen verschieben
Interessante Übung, ein eine Seite Plugin, das glaubt, dass es eine Menü-Seite der ersten Ebene verdient, ist falsch, IMO. Ich verwende die gleiche Technik mit Jetpack.
Um Unterseiten im Optionsseiten-Add-On zu erstellen, lesen Sie die Dokumentation .
Die Logik dieses Menü-/Untermenüwechsels lautet:
Die Schritte 1 und 2 sollen dieses Beispiel generisch machen.
Um es mit einem anderen Plugin zu verwenden, sind nur die Schritte 3 und 4 erforderlich, um die Slugs anzupassen.
Verwenden Sie beispielsweise add_theme_page
(Darstellung) oder add_options_page
(Einstellungen), um es in ein Standardmenü WP zu verschieben.
<?php
/**
* Plugin Name: Swap Menus and Sub-menus
* Plugin URI: http://wordpress.stackexchange.com/q/95981/12615
* Author: brasofilo
* Author URI: http://wordpress.stackexchange.com/users/12615/brasofilo
* Licence: GPLv2 or later
*/
class Swap_Menus_WPSE_95981 {
function __construct()
{
add_action( 'plugins_loaded', array( $this, 'modify_menus' ) );
}
function modify_menus()
{
// 1) Add ACF Options pages
if( function_exists( "register_options_page" ) )
{
register_options_page( 'Header' );
register_options_page( 'Footer' );
}
// 2) Create this plugin page
add_action( 'admin_menu', array( $this, 'add_aux_menu' ) );
// 3) Remove (hide) this plugin page
add_action( 'admin_init', array( $this, 'remove_aux_menu' ) );
// 4) Move this plugin page into ACF Options page
// Priority here (9999) is to put the submenu at last postition
// If the priority is removed, the submenu is put at first position
add_action( 'admin_menu', array( $this, 'add_aux_menu_again'), 9999 );
}
function add_aux_menu()
{
add_menu_page(
'Dummy Page First Level',
'Dummy Title',
'edit_posts',
'dummy-page-slug',
array( $this, 'menu_page_content' )
);
}
function menu_page_content()
{
?>
<div id="icon-post" class="icon32"></div>
<h2>Dummy Page</h2>
<p> Lorem ipsum</p>
<?php
}
function remove_aux_menu()
{
remove_menu_page( 'dummy-page-slug' );
}
function add_aux_menu_again()
{
// To move into default pages, f.ex., use add_theme_page or add_options_page
add_submenu_page(
'acf-options-header', // <---- Destination menu slug
'Dummy Page Second Level',
'Dummy Page Second Level',
'edit_posts',
'dummy-page-slug',
array( $this, 'menu_page_content' )
);
}
}
new Swap_Menus_WPSE_95981();