将元框添加到 WordPress 选项页面 [英] Add meta box to WordPress options page
问题描述
如何将(可拖动的)元框添加到我创建的插件的选项页面?这甚至可能吗?因为如果我查看文档,我会发现我只能将其添加到帖子"、页面"、链接"或custom_post_type"中.
是的,这是可能的.您上一个问题中的代码是正确的,但它遗漏了一些重要的内容,或者您尚未将该代码添加到问题中.
这是一个演示插件,可以帮助您使其正常工作.
<块引用>此插件演示了如何使用 WordPress 提供的可拖动元框构建自己的插件页面,需要 WordPress 2.7 版本,支持 WordPress 2.8 更改装箱布局引擎
演示插件的基本代码如下.请注意,在完整示例中,侧面元框不起作用,两列布局也不起作用,因为它是为 WordPress 2.8 编写的,当前版本几乎是 5.0.
//源代码由 Frank Bueltge 在 gist.github.com/bueltge/757903类 howto_metabox_plugin {函数 howto_metabox_plugin() {add_action('admin_menu', array($this, 'on_admin_menu'));add_action('admin_post_save_howto_metaboxes_general', array($this, 'on_save_changes'));}函数 on_admin_menu() {$this->pagehook = add_options_page('Howto Metabox Page Title', "HowTo Metaboxes", 'manage_options', 'howto_metaboxes', array($this, 'on_show_page'));add_action('load-'.$this->pagehook, array($this, 'on_load_page'));}函数 on_load_page() {wp_enqueue_script('common');wp_enqueue_script('wp-lists');wp_enqueue_script('邮箱');add_meta_box('howto-metaboxes-contentbox-2', 'Contentbox 2 Title', array($this, 'on_contentbox_2_content'), $this->pagehook, 'normal', 'core');add_meta_box('howto-metaboxes-contentbox-additional-1', 'Contentbox Additional 1 Title', array($this, 'on_contentbox_additional_1_content'), $this->pagehook, 'additional', 'core');}函数 on_show_page() {//定义一些数据可以在渲染期间提供给每个metabox$data = array('我的数据 1', '我的数据 2', '可用数据 1');?><div id="howto-metaboxes-general" class="wrap"><?php screen_icon('options-general');?><h2>Metabox Showcase 插件页面</h2><form action="admin-post.php" method="post"><?php wp_nonce_field('howto-metaboxes-general');?><input type="hidden" name="action" value="save_howto_metaboxes_general"/><div id="poststuff" class="metabox-holder"><div id="side-info-column" class="inner-sidebar"><?php do_meta_boxes($this->pagehook, 'side', $data);?>
<div id="post-body" class="has-sidebar"><div id="post-body-content" class="has-sidebar-content"><?php do_meta_boxes($this->pagehook, 'normal', $data);?><?php do_meta_boxes($this->pagehook, 'additional', $data);?><p><input type="submit" value="Save Changes" class="button-primary" name="Submit"/></p>
<br class="clear"/>