如何在WordPress中将文件中不同函数的不同事件写入日志文件

时间:2019-09-17 作者:Landry

我正在尝试将当前用户的ip、用户名、登录时间等事件写入日志文件。我已经使用WordPress钩子在php中为各种事件构建了函数,但我不知道如何将它们组合到我的日志函数中。以下是我的代码:

全局$active\\u用户;

      /**
        * function to get loggedin user\'s username
        */
        add_action(\'init\', \'log_file_setup\');
        function log_file_setup(){

        $path = dirname(__FILE__) . \'/log.txt\';

        $file = fopen($path,"w+");
        $person = "John\\n";


        file_put_contents($path, $person, FILE_APPEND );
        }

       /**
        * function to get loggedin user\'s username
        */

        function get_username(){

         if(is_user_logged_in()){
         $active_user = wp-get-current-user(); 
         $username = $active_user->login;

         return  $username;
         }
        }

       /**
        * function to get loggedin user\'s Role(s)
        */

        function get_userole(){

         if(is_user_logged_in()){
         $active_user = wp-get-current-user(); 

         // I have cast this into an array because the user may have multiple roles
         $userroles = ( array ) $active_user->roles; 
          return $userroles;
         }
        }

1 个回复
SO网友:Pat J

如果您设置WP_DEBUG* 中的常量wp-config.php 文件:

define( \'WP_DEBUG\', true );
define( \'WP_DEBUG_LOG\', true );
define( \'WP_DEBUG_DISPLAY\', false );
// prevents debugging messages from appearing in the browser
。。。那么你应该能够使用error_log() 您的调试消息将保存在wp-content/debug.log. (您可能必须确保wp-content/debug.log 存在并可由服务器写入以使其正常工作。)

请参见以下答案:https://stackoverflow.com/a/55515556/1094518

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。