自定义管理菜单页面中的生成高级自定义字段框

时间:2013-04-16 作者:Ray Tsai

我已经创建了一个名为FCC Youtube的自定义管理菜单页面add_menu_page 函数,其中包含一些我通过HTML和PHP手动生成的自定义字段:

代码(只是我创建这个自定义管理菜单页面的部分)

// 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

我想创建许多管理菜单页面,比如我创建的FCC Youtube页面。(FCC Vimeo、FCC按钮等)

我希望这些页面有ACF字段组。,意味着我可以创建ACF字段组,并将该组分配到我的自定义管理菜单页面。它的工作方式与ACF选项加载项页面完全相同。

ACF选项加载项不允许我创建多个顶级选项页面。我知道我可以创建多个二级选项页面,但我希望有多个顶级选项页面,但我仍然不知道如何做到这一点!

我已经购买了选项附加组件,但它不允许我创建多个“顶级”选项页面,我只有一个名为“选项”的父页面,然后在它下面有许多子页面,我希望其他“顶级”页面具有“选项”以外的其他名称,但这似乎很难做到:,

看到这个了吗enter image description here

我在父级“选项”下有所有这些选项页面,我不能将它们移到父级之外

enter image description here

1 个回复
SO网友:brasofilo

有趣的练习,一个认为它应该拥有一级菜单页面的一页插件是错误的,我对Jetpack使用了同样的技术。

要在选项页加载项中创建子页,read the documentation.

此菜单/子菜单交换的逻辑是:

添加多个ACF选项页面创建我们的菜单一级页面删除(隐藏)我们的插件页面添加(移动)我们的插件页面到ACF的步骤1和步骤2是使此示例通用的
要将其与任何其他插件一起使用,只需要步骤3和4,即调整段塞
要将其移动到默认WP菜单中,例如,使用add_theme_page (外观)或add_options_page (设置)。

<?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();

结束

相关推荐

只在本地主机上运行的Functions.php代码?

我想在函数中运行add\\u操作。仅当主题是从我的localhost开发站点加载时才使用php。如何使其仅在本地主机上运行?function livereload(){ ?> // mycode <?php } add_action(\'headway_body_close\', \'livereload\');

自定义管理菜单页面中的生成高级自定义字段框 - 小码农CODE - 行之有效找到问题解决它

自定义管理菜单页面中的生成高级自定义字段框

时间:2013-04-16 作者:Ray Tsai

我已经创建了一个名为FCC Youtube的自定义管理菜单页面add_menu_page 函数,其中包含一些我通过HTML和PHP手动生成的自定义字段:

代码(只是我创建这个自定义管理菜单页面的部分)

// 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

我想创建许多管理菜单页面,比如我创建的FCC Youtube页面。(FCC Vimeo、FCC按钮等)

我希望这些页面有ACF字段组。,意味着我可以创建ACF字段组,并将该组分配到我的自定义管理菜单页面。它的工作方式与ACF选项加载项页面完全相同。

ACF选项加载项不允许我创建多个顶级选项页面。我知道我可以创建多个二级选项页面,但我希望有多个顶级选项页面,但我仍然不知道如何做到这一点!

我已经购买了选项附加组件,但它不允许我创建多个“顶级”选项页面,我只有一个名为“选项”的父页面,然后在它下面有许多子页面,我希望其他“顶级”页面具有“选项”以外的其他名称,但这似乎很难做到:,

看到这个了吗enter image description here

我在父级“选项”下有所有这些选项页面,我不能将它们移到父级之外

enter image description here

1 个回复
SO网友:brasofilo

有趣的练习,一个认为它应该拥有一级菜单页面的一页插件是错误的,我对Jetpack使用了同样的技术。

要在选项页加载项中创建子页,read the documentation.

此菜单/子菜单交换的逻辑是:

添加多个ACF选项页面创建我们的菜单一级页面删除(隐藏)我们的插件页面添加(移动)我们的插件页面到ACF的步骤1和步骤2是使此示例通用的
要将其与任何其他插件一起使用,只需要步骤3和4,即调整段塞
要将其移动到默认WP菜单中,例如,使用add_theme_page (外观)或add_options_page (设置)。

<?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();

相关推荐

Calculations in functions.php

我为自己创建了一个发票主题,并试图在自定义列中获取发票总额。我已经尝试调整模板页面中使用的代码,以便在函数中显示这一点。php文件,但它不工作。我的乘法操作数出现了一个操作数错误,我不知道为什么。这是我的代码(如有任何帮助,将不胜感激)。if( $column_name == \'invoice_total\' ) { $hours = 0; // This allows counting of each sub_field //* Set repeater va