Call to undefined function

时间:2016-04-18 作者:Nicolas Frbezar

我不想在Wordpress中加入他的即时消息应用程序。即使在多个论坛中有多个相同的问题,我也找不到这个问题。

我的代码:intrachat。php

<?php
/*
Plugin Name: Intrachat
Plugin URI: *************
Description: Chattez en temps réel sur votre intranet
Version: 0.1
Author: *********
License: GPL2
*/

class Intrachat_Plugin
{
    
    public function __construct()
    {
        include_once plugin_dir_path( __FILE__ ).\'/page_title.php\';
        include_once plugin_dir_path( __FILE__ ).\'/chat.php\';
        new IC_Page_Title();
        $chat = new IC_Chat();
        
    }
}

new Intrachat_Plugin();
?>
聊天。php:

<?php

class IC_Chat {

    public function __construct()
    {
        add_action( \'init\', ic_show_chat_bar());
    }

    public function ic_show_chat_bar() {    
        if(is_user_logged_in()){
            echo "<script>alert(\\"Connecté\\")</script>"; 
        }   
    }
    
    
}

?>
我的问题:

致命错误:调用/var/www/vhosts/dev/html/wp-content/plugins/Intrachat/chat中未定义的函数ic\\u show\\u chat\\u bar()。php在线7

编辑:

尝试以下操作:

<?php

class IC_Chat {

    public function __construct()
    {
        add_action( \'init\', array($this, \'ic_show_chat_bar()\'));
    }

    public function ic_show_chat_bar() {    
        if(is_user_logged_in()){
            echo "<script>alert(\\"Connecté\\")</script>"; 
        }   
    }
    
    
}

?>
还是相同的错误。

1 个回复
最合适的回答,由SO网友:Luis Sanz 整理而成

正如php错误中指出的,问题出现在“chat.php”文件的第7行:

add_action( \'init\', ic_show_chat_bar());

这条线有两个问题:

有效回调函数的正确语法应该不带括号,并用单引号括起来

add_action( \'init\', array( $this, \'ic_show_chat_bar\' ) );

我建议访问代码参考add_action() 同时阅读底部用户提供的注释,在这里可以找到几个使用类时如何使用操作的示例。

相关推荐

500 Internal Errors

我正在将当前的Eduma主题更新为最新版本(3.0.9.1),目前的版本是3.0.7。我正在运行WordPress 4.7.5。但是,在运行更新时,我得到Update Failed: Internal Server Error 安装过程中的消息。所以我启动了这个过程,它运行了一分钟,然后它就停止了工作,我陷入了维护模式。所以我必须手动删除.maintenance 来自我的服务器的文件。我截图了我在错误中看到的内容。我在WordPress网站上运行了调试模式,这就是我所拥有的[31-May-2017 15: