如何在不使用Java脚本的情况下更改管理通知在html中的位置?

时间:2016-03-14 作者:hitautodestruct

我通过传统的admin_notice 挂接我的插件:

function my_admin_notice() { ?>
    <div class="notice notice-info is-dismissible">
        <p><?php _e( \'some message\', \'my-text-domain\' ); ?></p>
    </div>
    <?php
}

if ( my_plugin_show_admin_notice() )
  add_action( \'admin_notices\', \'my_admin_notice\' );
如果不使用Javascript,我如何控制wordpress在当前屏幕的html中放置管理通知的位置?

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

我最近意外地发现,所有的通知都会在第一个<h2> 在页面上的<div class="wrap">. 这为您提供了一些轻微的控制,例如,在插件设置页面上,您可以将<h2></h2> 如果您想使用<h2>Plugin Title</h2> 不会弄乱那里的显示格式。

SO网友:iantsch

根据法典admin_notice 是否执行以下操作:

在管理页面顶部附近显示的通知。挂钩功能应回显要显示的消息。

这意味着如果你使用挂钩,就不能将它们放在屏幕的底部或中间。此外,如果您在管理页面的任何地方放置一个带有类通知的div,那么WP admin JS脚本将把它们放在所有其他通知的位置;他们的行为也会像通知一样。

仅供参考:我已经用新安装测试过了。。)

但是,如果要显示admin_notice 在特定页面上,可以在current_screen 措施:

function my_admin_notice() { ?>
    <div class="notice notice-info is-dismissible">
        <p><?php _e( \'some message\', \'my_textdomain\' ); ?></p>
    </div>
    <?php
}

function my_current_screen_example( $current_screen ) {
    // All your conditions go here, e.g. show notice @ post (not page) edit/new
    if ( \'post\' == $current_screen->post_type && \'post\' == $current_screen->base ) {
        add_action( \'admin_notices\', \'my_admin_notice\' );
    }
}

add_action( \'current_screen\', \'my_current_screen_example\' );
更多信息:动作挂钩:admin_noticescurrent_screen

SO网友:NJENGAH

我也遇到了同样的问题,我通过确保我要放置通知的位置上方的所有标题标签没有<h2>.

在这种情况下,我想在输入字段下方显示一个错误日志通知,如下所示:enter image description here

我通过引入一个空的<h2> 标记电子邮件输入字段下方,并将tabs标记更改为<h3> 而不是<h2>

SO网友:Spartieee

我最近遇到了这个问题,并尝试使用空<h2></h2> 方法,但它对我不起作用。最终我发现<hr class="wp-header-end"> 似乎有效,管理通知将始终直接显示在其下方。

希望它能帮助别人!

SO网友:Rutwick Gangurde

行动admin_notices 调用或应用only once 在文件中,admin-header.php 在238号线上,就在wpbody-content div,它构成仪表板页面的主体。因此,如果不使用JavaScript,就无法更改管理通知的位置。然而,你绝对可以自己做notice 在所需的位置或位置进行div,并操纵其可见性。

只需将通知标记为:

<div class="notice notice-info is-dismissible">
    <p>This is a notice.</p>
</div>
现在可以使用PHP控制其可见性。这意味着,当您将用户重定向到此页面或在此页面上提交表单时,只需在div中设置消息,并使用简单的if-else回显div。

相关推荐

Gutenberg通过wp.hooks.addFilter修改核心分类面板元素

我已经研究过修改现有的编辑器元素……但几乎没有。但我确实在Github得到了一个很好的回复,指出了这一点:https://github.com/WordPress/gutenberg/tree/master/packages/editor/src/components/post-taxonomies#custom-taxonomy-selector显然,分类小组可以通过wp.hooks.addFilter. 这是一个很好的开始!我已经能够使用该代码片段模拟一些虚拟代码,用Dashicon替换分类法面板。(