問題描述

有些情況下,插件或主題需要在稍後包含它的地方創建一個 php 文件。例如,一個驗證碼插件,或某種模板系統,如 twig /smarty(在我的情況下,它是一個小工具集合的簡單模板引擎) 。

這個文件應該在哪裏創建?

我唯一可以想到的地方是 wp-content/uploads/,但是聽起來不正確:)

那麼有一個安全的地方可以創建文件,而不用擔心在 WordPress /plugin /主題更新中被刪除?

一個解決方案可能是在 themes /plugins 目錄中創建一個子主題/目錄

最佳解決方案

合適的位置 IMHO 將是您在 wp-content 目錄中創建的自定義文件夾在創建文件之前閲讀此文件:http://ottopress.com/2011/tutorial-using-the-wp_filesystem/

次佳解決方案

您不能依賴插件或主題目錄中的寫訪問權限,因此 wp_upload_dir()是唯一可能的目錄。但是我真的懷疑有必要將信息存儲在新文件中。如果模板是由用户創建的,請將其存儲在選項中,使用常規插件功能解析內容 (例如,用 strtr()替換佔位符) 。

第三種解決方案

在 Wordpress 插件上工作時,我偶然發現了你的問題。我也首先考慮創建臨時文件來緩存我的插件創建的一些數據。但是,如果您嘗試使用一組服務器進行擴展,這種方法對我來説似乎很奇怪,因為您不希望在一台服務器上放置臨時數據。

所以我再次搜索,似乎有效的解決方案是這樣的問題是 WordPress Transients API 允許您在數據庫中存儲有效期限的數據。當然,您的問題仍然可能需要本地緩存的文件,例如如果它們對於數據庫來説太大了,但是至少我建議看一下這個選項:-)

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。