Last Updated on 2021-12-09 by Clay
在 WordPress 外掛(plugin)開發的過程中,由於 WordPress 使用了 Settings API 簡化了開發者對於資料庫的讀寫,所以我們可以很便利地使用 register_setting()
、get_option()
、update_option()
等等的函式來將一些外掛的屬性資料儲存在資料庫中。
但有時候測試的程式碼寫多了,我經常建立了好幾個不同欄位的測試資料,然而又因為程式功能的刪刪改改,有些已經用不到的資料欄位就這樣留在資料庫中,很有些浪費。
所幸,當初在建立資料欄位時,有依照不同外掛、不同功能來建立不同的 option group,今天就來記錄如何列出同一個 option group 底下所有的資料名稱。
取得指定 option group 內的所有 option 名稱
以下的 php 程式碼你可以放在任何想要印出的地方。由於並沒有一個專門的函式可以列出指定 option group 底下的所有 option,於是我們必須讀取全域變數 $new_whitelist_options
,再指定我們當初設下的 group 名稱。
以下,我的 option group 名稱為 tnt-settings-group(我都忘了什麼是 tnt...),那麼我可以使用以下程式碼來印出我曾經設定的 option 欄位名稱:
global $new_whitelist_options;
$option_names = $new_whitelist_options[ 'tnt-settings-group' ];
echo json_encode( $option_names );
Output:
["event_name","ca_reserve_list"]
看來我當初設定的 option 比想像中少,也是一件好事。
References
- https://wordpress.stackexchange.com/questions/81713/difference-between-option-group-and-option-name-in-register-settings
- https://developer.wordpress.org/plugins/settings/settings-api/
- https://themehybrid.com/board/topics/how-to-get-all-option-name-in-option-group