$GLOBALS[‘HOOK_Suffix’]变量为空

时间:2014-07-01 作者:Shellbot

我正试图实现从插件中添加自定义帖子状态的代码,完全如本教程所示:http://jamescollings.co.uk/blog/wordpress-create-custom-post-status/

现在,它不起作用了,经过一些调查,似乎是admin\\u footer-post。php操作未启动。此操作挂钩的codex页面声明。

admin\\u footer-(hookname)在特定管理页的节末尾触发,在admin_footeradmin_print_footer_scripts 行动。

使用变量$GLOBALS[\'hook\\u suffix\']可以获得的hookname部分

。但该变量为空。我尝试过直接访问$hook\\u后缀,但运气不好,打印出整个$GLOBALS数组时,任何地方都没有显示hook\\u后缀。

我很困惑。

起初我以为它可能是为旧版本的WP写的,但就在三天前,有一位似乎已经取得了成功的人在博客上发表了评论。我尝试过关闭主题和所有其他插件,但完全不知道接下来该怎么办。

是什么让$GLOBALS[\'hook\\u suffix\']变量(显然是WP开发中很常见的东西)在我的网站上消失了?

2 个回复
SO网友:Shazzad

我觉得你错过了背景。$GLOBALS[\'hook_suffix\'] 在之后激发的任何操作上可用admin_init.

现在,如果你尝试add_action( \'admin_footer-\'. $GLOBALS[\'hook_suffix\'], \'myfunction\' ) 除了任何函数之外,你不会得到任何东西。

但如果你这样做了-add_action(\'admin_menu\', \'do_hook_to_footer\') 把前面的钩子放在do_hook_to_footer 功能,它将工作。

或者,你最好这样尝试-

<?php
/** Plugin Name: WPSE(#152404) $hook_suffix Test Plugin */
add_action( \'admin_menu\', \'hook_that\' );
function hook_that()
{
    add_action( "admin_footer-{$GLOBALS[\'hook_suffix\']}", \'test_that\' );
}
function test_that()
{
    echo "<h1>I AM HOOKED TO <code>admin_footer-{$GLOBALS[\'hook_suffix\']}</code></h1>";
}

SO网友:samjco

当我将Wp List表移动到前端时,我遇到了相同的错误Notice: Undefined index: hook_suffix in ..../wp-admin/includes/class-wp-screen.php on line 213

我通过更换

$id = $GLOBALS[\'hook_suffix\'];
使用

$id = isset($GLOBALS[\'hook_suffix\']) ? $GLOBALS[\'hook_suffix\'] : "";

结束

相关推荐

Custom Post Row Actions

我偶然发现this question 在写这个问题的时候。我有一个问题是关于这个问题的。我发现你用的是get_delete_post_link 筛选为我的操作创建一个新的url(或一个类似的函数——在任何情况下,我都会将该函数与布尔值一起使用)。唯一的问题是,I don\'t know how to capture the event now. 考虑到我在谷歌上找不到很多关于行后操作的例子,我将不胜感激-/public function _wp_filter_get_delete_post_link( $