【问题标题】:WordPress: How to show a metabox on any admin page?WordPress:如何在任何管理页面上显示元框?
【发布时间】:2013-08-23 04:34:37
【问题描述】:

我已经知道如何为帖子、页面和自定义帖子类型注册元框,但我想注册一个元框以显示在我的自定义管理页面上,这不是帖子。

我的插件在 WordPress 管理员中有一个“Options Page”——我想在这个页面上显示元框。

这可能吗?如果是,如何实现?

我在add_meta_box 文档中看到$post_type 参数的一个可能值是dashboard,但是这在任何地方都没有记录。我想它会在 WordPress 仪表板(登录时的主管理屏幕)上显示元框,但这不是我需要或想要的。

编辑:

这个问题是关于 OptionTree Metaboxes,它使用标准的 WordPress Metaboxes。也许有更好的方法可以通过不同地使用 OptionTree 或修改 OptionTree 来实现?请参阅此相关问题: How to have more than one "Theme Options" page with OptionTree?

【问题讨论】:

  • 检查this
  • @brasofilo 感谢您的链接!但是使用这种方法,我不确定如何保存元框设置,也不知道它将附加到哪个帖子 ID?如何使用get_post_meta() 恢复没有 ID 的“post meta”?谢谢!
  • @usernotfound 在下面查看我的答案,然后告诉我
  • @JothiKannan 感谢您的回答,在过去的 24 小时内,我尝试使用链接的代码使其工作,但没有成功。再次,您的演示插件(已退出旧并使用不推荐使用的方法)成功显示可视元框,这只不过是一些具有适当 JS 排队的 DIV,但是当您实际上需要一个真正的元框来做某事并使用时回调函数中的第一个参数(即当前 post ID),则回调失败。添加一个骰子('进入这里');在回调中显示它从未被调用...我有 WP_DEBUG 并且没有错误。

标签: php wordpress meta-boxes


【解决方案1】:

如果我的理解是正确的,你可以按照以下方式进行

这里有一个Demo plugin,可以帮助您使其正常工作。

这个 WordPress 插件演示了如何构建自己的插件 使用 WordPress 提供的可拖动元框的页面,需要 WordPress 2.7 版本,支持 WordPress 2.8 更改装箱布局 引擎

【讨论】:

  • @ Jothi Kannan 谢谢你的回答。我做了这个演示插件所做的事情,即 add_meta_box() 和 do_meta_boxes(),但它不起作用。出于某种原因,调用 do_meta_boxes() 永远不会起作用,我相信这是因为它缺少 post ID!当然可以,如果您查看 WordPress 文档,您会看到 add_meta_box() 的回调函数在第一个参数中接收帖子 ID。我不明白在没有任何帖子 ID 的“插件页面”上会传递什么......我相信这是主要问题。
  • 你应该传递$this->pagehook而不是post_ID,它应该在管理页面中工作
  • 查看插件文件第 60 行
  • @Jothi Kannan 抱歉我没说清楚,我说的是 add_meta_box() 的第三个参数中指定的回调函数。 WordPress 通常将帖子 ID 传递给此函数。在这种情况下它不起作用。
  • @ Jothi 我给了你努力的赏金;)它没有解决我的问题,但我想它是其他案例场景的可行解决方案。干杯!
【解决方案2】:

从未尝试过,只是一个想法。 在您的插件选项页面 url 中传递另一个参数说 post-type 并提供任何新的帖子类型名称。然后在 add_meta_box() 函数 $post_type = $_GET['post_type'] 中使用这个参数值。

【讨论】:

    猜你喜欢
    • 2019-03-08
    • 2016-11-12
    • 1970-01-01
    • 2019-01-15
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多