Wordpress 管理区域,挂钩添加固定弹出窗口的最佳操作

Wordpress admin area, best action to hook to add fixed popup

我正在研究在 Wordpress 管理区域中挂钩的最佳操作,以便基本上添加一个固定位置块,该块固定在每个管理页面的屏幕右侧。

这样做的目的是在点击时提供一个弹出窗口,其中会列出一些 shortcodes/available 选项。该代码将添加到插件中。

我看了一下,可以看到以下几种可能性,但哪种最符合我想要的结果?

我相信如果这个问题的答案解释了用于在所有页面上显示的一般操作,则最好接受。以及可能导致异常的情况(我认为常见的用法是 admin_notices 但这也许是一个异常?)。

您在回答中列出了钩子的可能性是正确的,但是,它们确实都有 "standard" 个用例,其中一个比另一个更受青睐。请看下面:

操作: admin_notices

admin_notices 的操作直接引用管理页面主要内容上方的 html 部分。例如 page/post 编辑器的标题框上方。

由于 HTML 的位置,您可以实现的样式将受到限制,因为周围的 <div> 元素可能会导致绝对定位和固定定位出现问题。

保留此操作仅用于显示 plugin/theme 相关 通知 也是一个 "industry standard",因此得名 admin_notices。诸如新的 Wordpress 更新、插件配置通知,甚至在激活时对 theme/plugin 有用的 tips/instructions。

操作: admin_footer

您可能希望使用 admin_footer 操作,因为它允许更多的样式自由度,因为它周围的限制 <div> 元素较少。

admin_notices 不同,admin_footer 操作也不保留用于任何特别的事情。因此更适合您的目的,因为您添加的内容不是通知,而是永久性功能,而通知对我来说是临时的。

附加信息

现在您已经为您的功能选择了适当的操作,您可能需要加载 CSS 文件,可能还需要加载 JS 文件来设置固定弹出窗口的样式。

为此,您需要使用 admin_enqueue_scripts 操作 (More info here)。

您还可以通过检查您所在的当前屏幕并根据返回值限制外观来限制固定弹出窗口的外观。见下文:

$current_screen = get_current_screen();
if ( $current_screen->post_type == '' || $current_screen->base != 'post' ) {
    return 'html';
}