有些第三方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在我上传时覆盖插件文件?
由于
答案 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' );