add_menu_page
関数を使用してFCC Youtubeというカスタム管理メニューページを作成しました。これには、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');
}
私が作成したFCC Youtubeページのように、多くの管理メニューページを作成したいです。 (FCC Vimeo、FCCボタンなど)
これらのページにACFフィールドグループがあるといいのですが。つまり、ACFフィールドグループを作成し、そのグループをカスタム管理メニューページに割り当てることができます。これは、ACFオプションアドオンページとまったく同じように機能します。
ACF Option-addonでは、トップレベルのオプションページを複数作成することはできません。私は複数のセカンドレベルのオプションページを作成することができることを理解していますが、私は多くのトップレベルのものを持ちたいのですが、私はまだこれを行う方法を理解することができません!
Optionアドオンを購入しましたが、複数の "トップレベル"オプションページを作成することはできません。 "Options"という名前の親ページしかなく、その下に多数のサブページがあります。 「レベル」ページには「オプション」以外の名前がありますが、実行するのが非常に難しいようです。
これを見て
私は、親の「オプション」の下にオプションページのこれらすべての束があります、私は親の外にそれらを動かすことができません
おもしろい演習、 1ページ 最初のレベルのメニューページに値すると信じるプラグインは間違っている、IMO。私はJetpackでも同じテクニックを使います。
Options Pageアドオンでサブページを作成するには、 ドキュメントを読んでください 。
このメニュー/サブメニューの交換のロジックは次のとおりです。
ステップ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();