插件中未显示ADMIN_NOTES

时间:2011-10-26 作者:Jared

我知道我可能在做一些愚蠢的事情,但我就是不能让它运行。我正在尝试为我的插件设置一个小API,并创建一个类来更轻松地显示管理通知。以下是我所拥有的:

// Send data to class to get HTML for admin notice
$efpd=Efpdd::getInstance();
$plugin_update = $efpd->efpd_admin_notice(
    $notice_info = array(
        \'type\' => \'update\',
        \'message\' => \'The plugin has just been updated.\',
        \'button\' => \'Click for details\'
    )
);
//wp_die(var_dump($plugin_update)); // Testing output of admin notice HTML code
add_action(\'admin_notices\',function(){echo $plugin_update;});
在我的课堂上,有一个函数:

public function efpd_admin_notice($data=array()){
    extract($data); // Extracts $message, $type, and $button from $data array
    if(empty($message) && !empty($type)){ // If no message was passed through the $data array, create one based on the type of notice passed, also begin the HTML output here
        switch($type){
            case \'error\':
                $message = \'There\\\'s been an error!\';
                $return = "<div id=\\"message\\" class=\\"error\\">\\n";
            break;
            case \'update\':
                $message = \'There\\\'s been an update!\';
                $return = "<div id=\\"message\\" class=\\"updated\\">\\n";
            break;
            default:
                $message = \'There\\\'s something wrong with your code...\';
                $return = "<div id=\\"message\\" class=\\"error\\">\\n";
            break;
        }
    }
    if(empty($button)) $button = \'Click Here\';
    $return .= "    <p style=\\"float: left;\\">{$message}</p>\\n";
    $return .= "    <p style=\\"float: left;\\"><a href=\\"{$settings_url}&amp;clear_cache=y\\">{$button}</a></p>\\n";
    $return .= "</div>\\n";
    return $return;
}
所以我想我是在问,我有什么错让这个管理通知不显示?是否有一个解决方法来实现这一点?谢谢

2 个回复
最合适的回答,由SO网友:Brian Fegter 整理而成

试试这个。我清理了您的arg数组,并将所有内容都放在一个函数中。另外,当您的efpd\\u admin\\u通知是公开的时,为什么要使用getInstance方法?请参阅下面的代码以正确访问此方法。

function plugin_update(){
    $plugin_update = Efpdd::efpd_admin_notice(array(
        \'type\' => \'update\',
        \'message\' => \'The plugin has just been updated.\',
        \'button\' => \'Click for details\'
    );
    echo $plugin_update;
);
add_action(\'admin_notices\', \'plugin_update\');

SO网友:T.Todua

使用多站点时,应同时执行以下两项操作:

add_action(\'admin_notices\',         \'your_function\');
add_action(\'network_admin_notices\', \'your_function\');
顺便说一句,$plugin_update 函数中使用的变量u将具有NULL 值,因为它是在函数外部定义的。

结束

相关推荐

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( $