voceconnect / voce-settings-api
简化核心WordPress设置API
0.5.4
2017-01-18 19:12 UTC
README
贡献者: prettyboymp, kevinlangleyjr, banderon, voceplatforms
标签: 设置, api
至少需要: 3.3
测试到: 4.2.2
稳定标签: 0.5.3
许可: GPLv2 或更高版本
许可URI: https://gnu.ac.cn/licenses/gpl-2.0.html
描述
简化核心WordPress设置API
安装
作为主题或插件依赖项
将插件拖入包含主题或插件后,添加以下内容
<?php if( ! class_exists( 'Voce_Settings_API' ) ) { require_once( $path_to_voce_settings_api . '/voce-settings-api.php' ); } ?>
用法
Voce_Settings_API
作为单例使用,因此您可以通过使用相同的 page_key 在其他地方创建的页面上添加设置。可以通过使用 Voce_Settings_API::GetInstance()
获取单例实例,并且大多数方法可以链接在一起,以便轻松为每个页面创建多个组和设置字段。
注册设置页面
通过 Voce_Settings_API
的 add_page()
方法注册页面,该方法通过其自身的单例实例访问。
参数
$page_title
(字符串) - 在设置页面顶部使用的字符串$menu_title
(字符串) - 在管理员菜单中使用的字符串或如果指定,则为管理员子菜单的标题$page_key
(字符串) - 作为设置页面密钥使用的唯一字符串$capability
(字符串) - 用户在页面上查看和编辑设置的能力级别$description
(字符串) - 页面的简短描述$parent_page
(字符串) - 父页面的 slug,留空以创建新菜单项
注册设置组
通过 Voce_Settings_Page
类的 add_group()
方法注册组。
参数
$title
(字符串) - 在设置组顶部使用的字符串$group_key
(字符串) - 作为设置组密钥使用的唯一字符串$capability
(字符串) - 用户在组内查看和编辑设置的能力级别$description
(字符串) - 组的简短描述
注册设置字段
通过 Voce_Settings_Group
类的 add_setting()
方法注册设置字段。
参数
$title
(字符串) - 在设置字段标签内使用的字符串$setting_key
(字符串) - 作为设置密钥使用的唯一字符串$args
(数组) - 设置的参数数组
<?php Voce_Settings_API::GetInstance()->add_page( 'Site Settings', 'Site Settings', 'site-settings', 'manage_options', 'General settings for site', 'options-general.php' ) ->add_group( 'Social Settings', 'social-settings' ) ->add_setting( 'Station Facebook Page URL', 'facebook_page_url', array( 'sanitize_callbacks' => array( 'vs_sanitize_url' ) ))->group ->add_setting( 'Google+ Profile', 'google_plus_profile', array( 'sanitize_callbacks' => array( 'vs_sanitize_url' ) ))->group->page ->add_group( 'Analytic Settings', 'analytic-settings' ) ->add_setting( 'Google Analytics Tracking ID', 'ga_id', array( 'display_callback' => function( $value, $setting, $args ){ // write your own display method or use one of the built in options listed below. return false; }, 'sanitize_callbacks' => array( function( $value, $setting, $args ){ // write your own sanitization methods or use one of the built in which are listed below. return $value; } ) ) ); ?>
获取设置值
使用 Voce_Settings_API
的 get_setting()
方法,您可以通过传递设置密钥、组密钥以及可选的默认值来检索设置值,如果尚未设置值,则返回默认值。
<?php $value = Voce_Settings_API::GetInstance()->get_setting($setting_key, $group_key, $default_value); ?>
显示方法
vs_display_text_field
默认vs_display_dropdown
vs_display_textarea
vs_display_checkbox
清理方法
vs_sanitize_text
默认vs_sanitize_checkbox
vs_sanitize_url
vs_sanitize_email
vs_sanitize_dropdown
在设置页面上添加 JS 和/或 CSS
<?php add_action( 'vs_admin_enqueue_scripts', function( $vs_page ){ foreach( $vs_page->groups as $group ){ foreach( $group->settings as $setting ){ if( $setting->args['display_callback'] == 'display_callback_of_custom_setting_field' ){ wp_enqueue_script('custom-setting-field-js', plugins_url( 'js/custom-setting-field-js.js', __FILE__ ), array( 'jquery' ) ); wp_enqueue_style( 'custom-setting-field-css', plugins_url( 'css/custom-setting-field-css.css', __FILE__ ) ); break 2; } } } } ); ?>
变更日志
请参阅完整的变更日志:https://github.com/voceconnect/voce-settings-api/releases