Running WP_Upgrader via Cron

时间:2013-08-02 作者:Sisir

我编写了在页面运行时更新核心的代码。当我通过管理挂钩使用代码时,一切都正常admin_init 但当我将其添加到cron函数或通过任何前端挂钩运行它时,它不起作用(致命错误)inittemplate_redirect

因此,我试图要求class-wp-upgrader.php 文件

add_action(\'init\', \'kit_wp_auto_update\'); // doesn\'t work
// add_action(\'admin_init\', \'kit_wp_auto_update\'); // works

    function kit_do_update(){
        require_once( ABSPATH . \'wp-admin/includes/class-wp-upgrader.php\' );

        fb(\'kit_do_update\');    


        $core_transient = get_site_transient( \'update_core\' );
        fb($core_transient);

        $updates = $core_transient->updates;
        $current = $updates[0];

        if( !empty( $core ) && $current->response == \'upgrade\' ){

            $skin = new Kit_Upgrader_Skin();        
            $upgrader = new Core_Upgrader($skin);
            $result = $upgrader->upgrade($current);

            if( is_wp_error( $result ) ) {
                return $result;
            }else{
                return true;
            }

        }
    }
但它仍然得到一些未定义的函数。

Fatal error: Call to undefined function request_filesystem_credentials() in /home4/sisir/public_html/_sites/wpkitten.com/site/wp-admin/includes/class-wp-upgrader.php on line 1113

Questions:

  1. request_filesystem_credentials() 在文件中定义,因此I don\'t understand why its undefined.Will wordpress have enough permission to do the upgrade?

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

你说你包括在内class-wp-upgrader.php, 但是Codex page for request_filesystem_credentials() 表示函数是在中定义的/wp-admin/includes/file.php. 这就是你需要的文件require() 在你可以使用它之前。

正在查看the source of class-wp-upgrader.php, 这个request_filesystem_credentials() 函数是WP_Upgrader_Skin 类,而不是独立函数。不能保证WP_Upgrader_Skin::request_filesystem_credentials() 做同样的事情request_filesystem_credentials(), 任何一个

结束

相关推荐

Plugin upgrade issue

我正在更新wordpress网站上安装的插件。然而,几乎一个小时以来,它仍处于维护模式。当我无意中重装时,我看到了白色的死亡大屏幕,上面写着:\"Briefly unavailable for scheduled maintenance. Check back in a minute.\"我能做些什么来解决这个烂摊子吗?