如何将插件中的设置子页面添加到主题中创建的设置页面?

时间:2016-02-05 作者:Rubén Marrero

我正在使用add_menu_page(...) 从自定义主题,我想用add_submenu_page(...) . 如果我尝试从主题开始,它会像预期的那样工作,但当我从插件开始尝试同样的操作时,它什么都不会做。

我认为插件可能会在菜单出现之前尝试添加子菜单页,所以我将代码包装在一个函数中并使用add_action(...) 使用在我想要代码执行的地方创建的自定义操作挂钩(与主题中的代码行完全一致)创建的插件do_action(...).

示例代码如下:

(主题)

function wvdh_add_admin_page(){
    // The next 2 lines work fine
    add_menu_page( \'WVDH - Settings\',\'WVDH\', \'manage_options\', \'wdvh-startpoint\', \'render_page\', \'dashicons-admin-network\', \'109\');
    add_submenu_page( \'wdvh-startpoint\', \'page-title\', \'menu-title\', \'manage_options\', \'menu-slug\', \'render_page\'  );
    // The next line does nothing
    do_action(\'wvdh-menu\');
}
add_action(\'admin_menu\', \'wvdh_add_admin_page\');

function render_page(){
    echo \'<h1>Test</h1>\';
}
(插件)

add_action(\'admin_menu\', \'wvdh_create_menu\');

function wvdh_create_menu() {
    add_action(\'wvdh-menu\', \'new_subpage\');
}

function new_subpage(){
    add_submenu_page( \'wvdh-startpoint\', \'page-from-plugin\', \'menu-from-plugin\', \'manage_options\', \'plugin-slug\', \'wvdh_settings_page\' );
}

function wvdh_settings_page() {
    echo \'<h1>Test from-plugin</h1>\';
}

1 个回复
最合适的回答,由SO网友:Sumit 整理而成

这只是一个输入错误

错误的

//wvdh-startpoint
add_submenu_page( \'wvdh-startpoint\', \'page-from-plugin\', \'menu-from-plugin\', \'manage_options\', \'plugin-slug\', \'wvdh_settings_page\' );
正确的

//wdvh-startpoint
add_submenu_page( \'wdvh-startpoint\', \'page-from-plugin\', \'menu-from-plugin\', \'manage_options\', \'plugin-slug\', \'wvdh_settings_page\' );

相关推荐

Huge wp_options table

我有一个WP网站的问题。由于没有更多可用磁盘空间,网站崩溃。搜索时,我检测到wp\\U选项表大小为12GB,但大约只有1100行:有什么想法吗?提前感谢[UPDATE 1]如果我导出wp\\U选项表,拖放并导入,大小将减少到9,7mb:我没有机会用优化表OPTIMIZE TABLE wp_options 但如果再发生的话我会试试的[UPDATE 2]问题仍然存在。我试着OPTIMIZE TABLE wp_options;无结果: