option.php 文件位于 wp-includes 目录下,该文件提供跟 option 后台及默认选项相关的 API,无执行代码,文件部分核心函数如下:
get_option($option,$default= false);
检索并获取通过 option 表单设置的选项值,如果无此选项或选项无值则返回失败,也常用于获取插件选项值或检测是否需要升级;这些选项如 WP后台菜单->常规中设置的 admin_email、blogname、blogdescription、home、 posts_per_page 等;
wp_protect_special_option($option);
保护WordPress特殊选项不被修改;
form_option($option);
对选项值进行格式化处理,核心代码为esc_attr(get_option($option)),其中 esc_attr() 函数用于对选项值中特殊字符转义,如< , > , " , ' , &等;
wp_load_alloptions();
加载并缓存所有自动加载的选项;
wp_load_core_site_options($site_id= null);
加载并缓存常用选项,如 site_name、siteurl、site_admins 等;
update_option($option,$newvalue);
更新已存在的选项值,如果选项不存在则将添加选项值,但无法设置其是否自动加载,若要设置其自动加载则需要使用add_option() 函数;
add_option($option,$value= '',$deprecated= '',$autoload= 'yes');
增加一个新的选项,可以创建空值选项后期更新其值;
delete_option($option);
删除选项则避免删除受保护的WordPress选项;
delete_transient($transient);
删除临时值;
get_transient($transient);
获取临时值;
set_transient($transient,$value,$expiration= 0);
设置或更新临时值及生存时间等;
wp_user_settings();
缓存用户界面设置,若不存在 cookie 则采用最后一次保存的设置;
get_user_setting($name,$default= false);
获取选项的设置值,值来源于函数 get_all_user_settings();
set_user_setting($name,$value);
增加或更新界面用户设置;
delete_user_setting($names);
清除重置用户界面设置;
get_all_user_settings();
检索所有用户界面设置;
delete_all_user_settings();
重置当前用户界面设置;
get_site_option($option,$default= false,$use_cache= true);
根据选项名获取选项值;
add_site_option($option,$value);
新增选项,选项已存在则覆盖,主要借助 apply_filters() 和 do_action() 函数实现;
delete_site_option($option);
删除选项,借助 do_action() 钩子原理实现;
update_site_option($option,$value);
更新选项值,基于钩子原理;