當主題設置被用戶更新時,我的主題創建一個css文件。這工作沒有問題。WordPress:安裝主題更新時掛鉤
現在我還需要創建css文件,當主題從儀表板內更新或發生自動更新時。
我已經基於這些例子看着upgrader_process_complete
和upgrader_post_install
:https://codex.wordpress.org/Plugin_API/Action_Reference/upgrader_process_complete和https://wordpress.stackexchange.com/questions/215063/limit-filter-upgrader-post-install-to-a-single-plugin但由於某些原因,我的功能沒有被後,我更新了主題解僱。
以下代碼位於我的主題的functions.php中。
function create_css_file() {
//code to create css file
}
function my_upgrade_function($options) {
create_css_file();
}
add_action('upgrader_process_complete', my_upgrade_function, 10, 2);
//I also tried this. No luck
add_filter('upgrader_post_install', my_upgrade_function, 100, 0);
我是否缺少一些基本的東西?
更新#1: 我以add_action('upgrader_process_complete', my_upgrade_function, 150);
現在似乎工作降低優先級,但是當create_css_file
函數被調用,它使用以前的版本,而不是新安裝的版本。當我檢查創建的CSS文件時,它是新生成的,但基於舊版本。不知道爲什麼會發生。
我也將其更改爲add_action('upgrader_process_complete', my_upgrade_function, 1);
- 同樣的問題。舊代碼正在使用,而不是新安裝的代碼。
更新#2: 好吧,我得出的結論,這兩個,upgrader_process_complete
和upgrader_post_install
,而舊的主題仍安裝,哪一種失敗的全部目的都被解僱。
我很快跑了一個測試,在那裏我刪除了整個upgrader_process_complete
部分,並將其上傳到我的私人存儲庫。然後我轉到主題並在儀表板中對其進行了更新,但upgrader_process_complete
仍然被解僱,再次基於已安裝的主題創建了一個css文件,而不是新安裝的主題。但正如我所說,我實際上刪除了整個upgrader_process_complete
代碼部分,所以它不應該首先解僱。
這使我相信,upgrader_process_complete
被解僱,而舊的主題仍然安裝。
這使我回到原點。如何在主題更新成功安裝後調用函數?