Php Wordpress主题更新,不删除目标文件夹

Php Wordpress主题更新,不删除目标文件夹,php,wordpress-theming,wordpress,Php,Wordpress Theming,Wordpress,我正在使用Jeremy Clark编写的脚本更新我的自托管Wordpress主题。脚本可从此处下载- 更新程序工作得很好,但是它删除了目标主题文件夹,然后 从下载的zip文件中解压缩更新。这将删除自定义设置,如custom.css 我的问题: 是否有任何方法可以通过不删除现有(旧)主题数据来覆盖更新。 这样,如果我的主题大小是12mb,那么我可以只压缩新的更新(仅更新的文件),这将仅仅是200kb(取决于更新)。这样我就可以保留自定义设置 有什么想法吗 我希望我能解释我的问题 --我想你做错了。

我正在使用Jeremy Clark编写的脚本更新我的自托管Wordpress主题。脚本可从此处下载-

更新程序工作得很好,但是它删除了目标主题文件夹,然后 从下载的zip文件中解压缩更新。这将删除自定义设置,如custom.css

我的问题:

是否有任何方法可以通过不删除现有(旧)主题数据来覆盖更新。 这样,如果我的主题大小是12mb,那么我可以只压缩新的更新(仅更新的文件),这将仅仅是200kb(取决于更新)。这样我就可以保留自定义设置

有什么想法吗

我希望我能解释我的问题


--我想你做错了。WordPress只是因为父主题得到了更新,在这个过程中您将丢失所有修改


出于同样的原因,您不应该修改核心文件或插件文件。

我猜您做得不对。WordPress只是因为父主题得到了更新,在这个过程中您将丢失所有修改


出于同样的原因,您不应该修改核心文件或插件文件。

我通过以下方式解决了这个问题:

add_filter('upgrader_pre_install', 'backup', 10, 2); //line 1
add_filter('upgrader_post_install', 'recover', 10, 2); //line2
add_filter('pre_set_site_transient_update_themes', 'check_for_update'); //line 3
解释

upgrader\u pre\u install是一个过滤器挂钩,在升级开始之前运行

升级程序\u post\u安装是一个过滤器挂钩,在升级完成后运行

因此,下面的函数会在适当的时间触发,这允许我对自定义文件进行备份,然后将它们复制回主题中

function backup() {

     //create a folder using mkdir outside the theme folder and copy the necessary files.

}

function restore() {

     //restore the files and then delete the backup folder

}

希望这对类似情况下的开发人员有所帮助。

我通过以下方式解决了这个问题:

add_filter('upgrader_pre_install', 'backup', 10, 2); //line 1
add_filter('upgrader_post_install', 'recover', 10, 2); //line2
add_filter('pre_set_site_transient_update_themes', 'check_for_update'); //line 3
解释

upgrader\u pre\u install是一个过滤器挂钩,在升级开始之前运行

升级程序\u post\u安装是一个过滤器挂钩,在升级完成后运行

因此,下面的函数会在适当的时间触发,这允许我对自定义文件进行备份,然后将它们复制回主题中

function backup() {

     //create a folder using mkdir outside the theme folder and copy the necessary files.

}

function restore() {

     //restore the files and then delete the backup folder

}

希望这对类似情况下的开发人员有所帮助。

是的,子主题是实现这一点的方法+关于那件事,我有点担心。但我的要求是更新父主题。我正在尝试扩展Wordpress的升级类以实现这一点。您可以将当前主题用作子主题,并删除尚未修改的文件。别忘了也安装原始的父主题。没有测试,但应该可以。谢谢@RRikesh的反馈。我会记住你的建议。是的,儿童主题是实现这一点的方法+关于那件事,我有点担心。但我的要求是更新父主题。我正在尝试扩展Wordpress的升级类以实现这一点。您可以将当前主题用作子主题,并删除尚未修改的文件。别忘了也安装原始的父主题。没有测试,但应该可以。谢谢@RRikesh的反馈。我会记住你的建议。