wake-up-neo.net

Feld "Erweiterte benutzerdefinierte Felder erstellen" auf der Seite "Benutzerdefiniertes Admin-Menü"

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');
    }

see image

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 enter image description here

Ich habe all diese Optionsseiten unter den übergeordneten Optionen. Ich kann sie nicht außerhalb der übergeordneten Optionen verschieben

enter image description here

3
Ray Tsai

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:

  1. Fügen Sie mehrere ACF-Optionsseiten hinzu
  2. Erstellen Sie unsere Menü-Seite der ersten Ebene
  3. Entferne (verstecke) unsere Plugin-Seite
  4. Fügen Sie unsere Plugin-Seite zu ACFs hinzu (verschieben Sie sie)

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();
3
brasofilo