我正在使用Jeremy Clark编写的脚本来更新我自己托管的Wordpress主题。该脚本可以从这里下载 - GitHub
updator工作得非常好,但它会删除目标主题文件夹 从下载的zip文件中解压缩更新。这会删除custom.css
等自定义项我的问题:
有没有办法可以通过不删除现有(旧)主题数据来覆盖更新。 这样,如果我的主题大小是12mb,那么我可以只压缩新的更新(仅更新的文件),这将只是200kb(取决于更新)。这样我就可以保留自定义。
对此有何想法?
我希望我能够解释我的问题。
-
答案 0 :(得分:4)
我猜你做错了。 WordPress有child themes只是因为父主题得到更新,你将失去该过程中的所有修改。
出于同样的原因,您不应该修改核心文件或插件文件。
答案 1 :(得分:0)
我设法通过以下方式解决了这个问题:
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_pre_install 是一个过滤器挂钩,它在升级开始之前运行。
upgrader_post_install 是一个过滤器挂钩,在升级完成后运行。
因此,下面的函数会在适当的时间触发,这样我就可以备份自定义文件,然后将它们复制回主题。
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
}
希望这对处于类似情况的开发人员有所帮助。