2013-12-13 48 views
0

我正在開發一個插件,將從第三方API中提取數據。用戶用戶在插件的正常設置表單中輸入了多個選項(使用了Reduz Framework - 使用WP Settings API)。WordPress的:從後端保存自定義插件選項

然後用戶提供的選項將用於生成對第三方API的請求。

現在我的問題/問題:如何存儲從該API返回的數據?有沒有一種內置的方式在Wordpress中做到這一點 - 或者我將不得不安裝我自己的數據庫表?似乎有點矯枉過正......有沒有什麼辦法可以「破解」到Settings API並設置自定義設置,而無需在前端顯示它們?

謝謝 - 祝大家節日快樂!

回答

0

這聽起來像你想要做的實際上只是存儲來自遠程API請求的數據,而不是「選項」。如果你不想爲他們創建一個表格,我可以考慮三種簡單的方法。

Transients API

保存數據從所述API返回爲transients,即臨時緩存數據。這通常適用於無論如何將會過期的數據,因此需要刷新。設置到期時間!即使您想永久保留數據,請設置到期時間,否則數據將在每次加載頁面時自動加載,因此即使您不需要它們也會消耗內存。然後您可以使用get_transient輕鬆找回它們;如果過期,你會得到false,這是你的觸發器再次進行API調用。

注意:在使用memcached或其他對象緩存的主機上,您的瞬變很可能會比您期望的更早被推出對象緩存,從而迫使您的插件再次從API中檢索數據。瞬變實際上是關於緩存,而不是「數據存儲」本身

Options

使用add_option保存數據爲自定義選項 - 並指定自動加載=「無」,這樣在不需要的時候,他們沒有填滿腳本的記憶!請注意,update_option會在autoload =「yes」的情況下添加數據,因此我建議您使用delete,然後添加而不是更新。您可以輕鬆地將您的數據retrieve

Custom Post Type

您可以輕鬆地通過註冊自定義後類型存儲在wp_posts表的數據,然後你可以使用wp_insert拯救他們和平常的WordPress post queries對它們進行檢索。非常適合您想要保留的長期數據。您可以利用post_title,post_content,post_excerpt和其他標準後期字段來存儲您的一些數據,如果您需要更多,可以使用add post meta fields

+0

非常感謝你這個偉大的答案!我想我會隨着瞬態而去,因爲我需要每24-48小時加載一次API響應。它似乎也是最簡單的解決方案。 –