有没有办法强制Wordpress在安装时覆盖插件文件?

时间:2017-05-12 13:32:47

标签: wordpress

有些第三方Wordpress插件不支持自动更新。因此,如果您已安装v1.0插件并尝试安装新版本(例如v1.1),则最终会收到消息:

Destination folder already exists. /home/.../.../...

这留下了两个选项,我都不想使用它们:卸载&重新安装插件,或通过FTP手动上传新文件。

在/wp-admin/includes/class-wp-upgrader.php第428行我看到这段代码:

public function install_package( $args = array() ) {
    global $wp_filesystem, $wp_theme_directories;

    $defaults = array(
        'source' => '', // Please always pass this
        'destination' => '', // and this
        'clear_destination' => false,
        'clear_working' => false,
        'abort_if_destination_exists' => true,
        'hook_extra' => array()
    );

    $args = wp_parse_args($args, $defaults);

    ...

是否可以在我的主题的functions.php文件中添加一行来重新声明'clear_destination'为true,从而强制Wordpress在我上传时覆盖插件文件?

由于

1 个答案:

答案 0 :(得分:3)

我一直在挖掘,并认为我找到了解决方案。如果我创建了一个自定义插件,我可以使用' upgrader_package_options'重新声明这些选项。过滤器:

function override_plugins( $options ) {

    $options['clear_destination'] = true;
    $options['abort_if_destination_exists'] = false;

    return $options;
}
add_filter( 'upgrader_package_options', 'override_plugins' );