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_APIadd_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_APIget_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