当前位置:秋硕笔记 > 记录 > 正文

WordPress 后台框架 Redux Framework 配置文件汉化


通过搜索字段、示例的实际声明来使用不同的字段、示例
*
*/

$sampleHTML = '';
if ( file_exists( dirname( __FILE__ ) . '/info-html.html' ) ) {
Redux_Functions::initWpFilesystem();

global $wp_filesystem;

$sampleHTML = $wp_filesystem->get_contents( dirname( __FILE__ ) . '/info-html.html' );
}

// 背景模式阅读器
$sample_patterns_path = ReduxFramework::$_dir . '../sample/patterns/';
$sample_patterns_url = ReduxFramework::$_url . '../sample/patterns/';
$sample_patterns = array();

if ( is_dir( $sample_patterns_path ) ) {

if ( $sample_patterns_dir = opendir( $sample_patterns_path ) ) {
$sample_patterns = array();

while ( ( $sample_patterns_file = readdir( $sample_patterns_dir ) ) !== false ) {

if ( stristr( $sample_patterns_file, '.png' ) !== false || stristr( $sample_patterns_file, '.jpg' ) !== false ) {
$name = explode( '.', $sample_patterns_file );
$name = str_replace( '.' . end( $name ), '', $sample_patterns_file );
$sample_patterns[] = array(
'alt' => $name,
'img' => $sample_patterns_url . $sample_patterns_file
);
}
}
}
}

/**
* ---> 参数设置
* 所有支持Redux的参数
* 有关参数的完整文件,请参阅: https://github.com/ReduxFramework/ReduxFramework/wiki/Arguments
* */

$theme = wp_get_theme(); // 用于某些设置项,非必须

$args = array(
// 典型 -> 根据需要/愿望更改这些值
'opt_name' => $opt_name,
// 这个字段保存在你的数据库里,主题设置项opt_name 可以在数据库里面找到,也是你的全局变量名
'display_name' => $theme->get( 'Name' ),
// 在面板上方显示主题名称
'display_version' => $theme->get( 'Version' ),
// 在面板上方显示主题版本
'menu_type' => 'submenu',
//在后台是显示独立的主题设置选项菜单,还是在"外观"菜单下显示主题设置选项(只在主题启用时显示),参数:menu 或 submenu
'allow_sub_menu' => false,
// 是否在后台菜单栏(包括左侧菜单和顶部Admin工具条)显示主题选项设置的子菜单项,默认值"true"
'menu_title' => __( '选项', 'redux-framework-demo' ),//设置左侧栏主题设置菜单名,默认值"Sample Options"
'page_title' => __( '选项', 'redux-framework-demo' ),//设置浏览器和admin工具条上的菜单名,默认值"Sample Options"
// 您需要生成一个Google API密钥才能使用此功能
// 请访问: https://developers.google.com/fonts/docs/developer_api#Auth
'google_api_key' => '',
// 谷歌api_key - 用于谷歌字体升级,可以不理会.
'google_update_weekly' => false,
// 是否使用谷歌字体,最好保持false
'async_typography' => true,
// 在前端或字体字符串上使用异步字体(异步排版)
//'disable_google_fonts_link' => true, // 禁用此功能,以防要创建自己的Google字体加载程序
'admin_bar' => false,
// 是否在admin工具条上显示主题设置菜单名
'admin_bar_icon' => 'dashicons-portfolio',
// admin工具条图标
'admin_bar_priority' => 50,
// Admin工具条上主题选项菜单的优先级,也就是显示位置,默认值50
'global_variable' => '',
// 设置主题设置的全局变量 建议:命名空间_主题名称
'dev_mode' => false,
// 开发者模式,显示页面加载所需的时间等
'forced_dev_mode_off' => true,
//强制关闭开发者模式
'update_notice' => true,
// 升级公告,如果启用dev_mode,将通知开发人员GitHub仓库中可用的更新版本
'customizer' => true,//个人定制
// 启用基本的自定义程序支持
//'open_expanded' => true, // 允许您在开始时以扩展的方式启动面板.
//'disable_save_warn' => true, // 当用户更改字段时禁用保存警告

// 可选 -> 给你些额外的特性
'page_priority' => null,
// 页面优先级,选择主题设置菜单在左侧显示的位置,如果有任何冲突,就不会有什么东西出现(警告),默认值"null"
'page_parent' => 'themes.php',
// 有关选项的完整列表, 请参阅: http://codex.wordpress.org/Function_Reference/add_submenu_page#Parameters
'page_permissions' => 'manage_options',
// 设置权限,访问选项面板所需的权限。
'menu_icon' => '',
// 图标链接设置,为图标指定自定义URL
'last_tab' => '',
// 强制面板始终打开到特定的选项卡(由id确定),说白了就是每次点击主题设置选项的时候右侧面板默认打开的是哪个选项卡(审查元素,找到li标签对应的id数值,比如id="1_section_group_li",就是1)
'page_icon' => 'icon-themes',
// 设置管理面板中菜单名左侧的图标
'page_slug' => '',
// 主题设置页面的别名, 如果没有提供的话,则基于页面标题——>菜单标题——>选项名来设置
'save_defaults' => true,
// 更新设置之前是否先保存一遍默认设置(加载时,在用户单击“保存”或“不保存”之前,将默认值保存到)
'default_show' => false,
// 若为true,那么不启用设置字段的默认值
'default_mark' => '',
// 设置项标题后面的标记,建议使用*号
'show_import_export' => true,
// 显示导入导出设置

// 慎用 -> 这些选项仅供高级使用
'transient_time' => 60 * MINUTE_IN_SECONDS,
'output' => true,
// Global shut-off for dynamic CSS output by the framework. Will also disable google fonts output
'output_tag' => true,
// Allows dynamic CSS to be generated for customizer and google fonts, but stops the dynamic CSS from going to the head
// 'footer_credit' => '', // Disable the footer credit of Redux. Please leave if you can help it.

// FUTURE -> Not in use yet, but reserved or partially implemented. Use at your own risk.
'database' => '',
// 可设值为: options, theme_mods, theme_mods_expanded, transient,功能不全,警告!
'use_cdn' => true,
// If you prefer not to use the CDN for Select2, Ace Editor, and others, you may download the Redux Vendor Support plugin yourself and run locally or embed it in your code.

// 提示框的参数
'hints' => array(
'icon' => 'el el-question-sign',
'icon_position' => 'right',
'icon_color' => 'lightgray',
'icon_size' => 'normal',
'tip_style' => array(
'color' => 'red',
'shadow' => true,
'rounded' => false,
'style' => '',
),
'tip_position' => array(
'my' => 'top left',
'at' => 'bottom right',
),
'tip_effect' => array(
'show' => array(
'effect' => 'slide',
'duration' => '500',
'event' => 'mouseover',
),
'hide' => array(
'effect' => 'slide',
'duration' => '500',
'event' => 'click mouseleave',
),
),
)
);

// admin管理栏链接 -> 将Admin管理栏菜单中的自定义链接设置为外部项
// $args['admin_bar_links'][] = array(
// 'id' => 'redux-docs',
// 'href' => 'http://docs.reduxframework.com/',
// 'title' => __( 'Documentation', 'redux-framework-demo' ),
// );

// $args['admin_bar_links'][] = array(
// //'id' => 'redux-support',
// 'href' => 'https://github.com/ReduxFramework/redux-framework/issues',
// 'title' => __( 'Support', 'redux-framework-demo' ),
// );

// $args['admin_bar_links'][] = array(
// 'id' => 'redux-extensions',
// 'href' => 'reduxframework.com/extensions',
// 'title' => __( 'Extensions', 'redux-framework-demo' ),
// );

// 社会化图标 -> 设置面板页脚中社会化图标的自定义链接
// $args['share_icons'][] = array(
// 'url' => 'https://github.com/ReduxFramework/ReduxFramework',
// 'title' => 'Visit us on GitHub',
// 'icon' => 'el el-github'
// //'img' => '', // 您可以使用图标或图片,图片需要一个完整的URL
// );
// $args['share_icons'][] = array(
// 'url' => 'https://www.facebook.com/pages/Redux-Framework/243141545850368',
// 'title' => 'Like us on Facebook',
// 'icon' => 'el el-facebook'
// );
// $args['share_icons'][] = array(
// 'url' => 'http://twitter.com/reduxframework',
// 'title' => 'Follow us on Twitter',
// 'icon' => 'el el-twitter'
// );
// $args['share_icons'][] = array(
// 'url' => 'http://www.linkedin.com/company/redux-framework',
// 'title' => 'Find us on LinkedIn',
// 'icon' => 'el el-linkedin'
// );

// 控制面板介绍文本 -> 位于表单之前
if ( ! isset( $args['global_variable'] ) || $args['global_variable'] !== false ) {
if ( ! empty( $args['global_variable'] ) ) {
$v = $args['global_variable'];
} else {
$v = str_replace( '-', '_', $args['opt_name'] );
}
$args['intro_text'] = sprintf( __( '

您知道Redux框架为您设置了一个全局变量吗?要从代码中访问您保存的任何选项,可以使用您的全局变量: $%1$s

', 'redux-framework-demo' ), $v );
} else {
$args['intro_text'] = __( '

此文本显示在“选项”面板的上方,这不是必需的,但更多的信息总是更好! 该intro_text字段可接受所有的HTML标签

', 'redux-framework-demo' );
}

// 在表单后面添加内容
$args['footer_text'] = __( '

此文本显示在“选项”面板下面。这不是必需的,但更多的信息总是更好! 该footer_text字段可接受所有的HTML标签

', 'redux-framework-demo' );

Redux::setArgs( $opt_name, $args );

/*
* ---> 参数设置结束
*/

/*
* ---> 注释开始:面板顶部的"帮助"选项卡
*/

$tabs = array(
array(
'id' => 'redux-help-tab-1',
'title' => __( '主题信息1', 'redux-framework-demo' ),
'content' => __( '

这是TAB内容,支持HTML标签

', 'redux-framework-demo' )
),
array(
'id' => 'redux-help-tab-2',
'title' => __( '主题信息2', 'redux-framework-demo' ),
'content' => __( '

这是TAB内容,支持HTML标签

', 'redux-framework-demo' )
)
);
Redux::setHelpTab( $opt_name, $tabs );

// 设置"帮助"选项
$content = __( '

这是"帮助"选项的边栏内容,支持HTML标签

', 'redux-framework-demo' );
Redux::setHelpSidebar( $opt_name, $content );

/*
* <--- 注释结束:面板顶部的"帮助"选项卡 */ /* * * ---> START SECTIONS
*
*/

/*

自Redux框架的3.5版本起, 增加了一个应用广泛的API,此API可用于混合/匹配模式

*/

// -> 注释开始:基本字段
Redux::setSection( $opt_name, array(
'title' => __( '基础字段', 'redux-framework-demo' ),
'id' => 'basic',
'desc' => __( '这些都是很基本的选项!', 'redux-framework-demo' ),
'customizer_width' => '400px',
'icon' => 'el el-home'
) );

Redux::setSection( $opt_name, array(
'title' => __( '复选框', 'redux-framework-demo' ),
'id' => 'basic-checkbox',
'subsection' => true,
'customizer_width' => '450px',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/checkbox/',
'fields' => array(
array(
'id' => 'opt-checkbox',
'type' => 'checkbox',
'title' => __( '通用复选框设置', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'default' => '1'// 1 = on | 0 = off
),
array(
'id' => 'opt-multi-check',
'type' => 'checkbox',
'title' => __( '多项复选设置', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
//Must provide key => value pairs for multi checkbox options
'options' => array(
'1' => 'Opt 1',
'2' => 'Opt 2',
'3' => 'Opt 3'
),
//See how std has changed? you also don't need to specify opts that are 0.
'default' => array(
'1' => '1',
'2' => '0',
'3' => '0'
)
),
array(
'id' => 'opt-checkbox-data',
'type' => 'checkbox',
'title' => __( '多项复选设置 (包含菜单信息)', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'data' => 'menu'
),
array(
'id' => 'opt-checkbox-sidebar',
'type' => 'checkbox',
'title' => __( '多项复选设置 (包含侧栏信息)', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'data' => 'sidebars'
),
)
) );
Redux::setSection( $opt_name, array(
'title' => __( '单选', 'redux-framework-demo' ),
'id' => 'basic-Radio',
'subsection' => true,
'customizer_width' => '500px',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/radio/',
'fields' => array(
array(
'id' => 'opt-radio',
'type' => 'radio',
'title' => __( '通用单选', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
//Must provide key => value pairs for radio options
'options' => array(
'1' => 'Opt 1',
'2' => 'Opt 2',
'3' => 'Opt 3'
),
'default' => '2'
),
array(
'id' => 'opt-radio-data',
'type' => 'radio',
'title' => __( '单选(包含菜单信息)', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'data' => 'menu'
),
)
) );
Redux::setSection( $opt_name, array(
'title' => __( '排序', 'redux-framework-demo' ),
'id' => 'basic-Sortable',
'subsection' => true,
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/sortable/',
'fields' => array(
array(
'id' => 'opt-sortable',
'type' => 'sortable',
'title' => __( '可排序文本选项', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'label' => true,
'options' => array(
'Text One' => 'Item 1',
'Text Two' => 'Item 2',
'Text Three' => 'Item 3',
)
),
array(
'id' => 'opt-check-sortable',
'type' => 'sortable',
'mode' => 'checkbox', // checkbox or text
'title' => __( '可排序文本选项', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'options' => array(
'cb1' => 'Checkbox One',
'cb2' => 'Checkbox Two',
'cb3' => 'Checkbox Three',
),
'default' => array(
'cb1' => false,
'cb2' => true,
'cb3' => false,
)
),
)
) );

Redux::setSection( $opt_name, array(
'title' => __( '文本框', 'redux-framework-demo' ),
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/text/',
'id' => 'basic-Text',
'subsection' => true,
'customizer_width' => '700px',
'fields' => array(
array(
'id' => 'text-example',
'type' => 'text',
'title' => __( '通用文本框', 'redux-framework-demo' ),
'subtitle' => __( '子标题', 'redux-framework-demo' ),
'desc' => __( '描述', 'redux-framework-demo' ),
'default' => '默认文字',
),
array(
'id' => 'text-example-hint',
'type' => 'text',
'title' => __( '带提示的文本框', 'redux-framework-demo' ),
'subtitle' => __( '子标题', 'redux-framework-demo' ),
'desc' => __( '描述', 'redux-framework-demo' ),
'default' => '默认文字',
'text_hint' => array(
'title' => 'Hint Title',
'content' => 'Hint content about this field!'
)
),
array(
'id' => 'text-placeholder',
'type' => 'text',
'title' => __( '带占位文字的文本框', 'redux-framework-demo' ),
'subtitle' => __( '子标题', 'redux-framework-demo' ),
'desc' => __( '描述', 'redux-framework-demo' ),
'placeholder' => 'Placeholder Text',
),

)
) );

Redux::setSection( $opt_name, array(
'title' => __( '多项文本框', 'redux-framework-demo' ),
'id' => 'basic-Multi Text',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/multi-text/',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-multitext',
'type' => 'multi_text',
'title' => __( '可新增文本框设置项', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
),
)
) );
Redux::setSection( $opt_name, array(
'title' => __( '密码', 'redux-framework-demo' ),
'id' => 'basic-Password',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/password/',
'subsection' => true,
'fields' => array(
array(
'id' => 'password',
'type' => 'password',
'username' => true,
'title' => 'Password Field',
//'placeholder' => array(
// 'username' => 'Username',
// 'password' => 'Password',
//)
)
)
) );

Redux::setSection( $opt_name, array(
'title' => __( '文本域', 'redux-framework-demo' ),
'id' => 'basic-Textarea',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/textarea/',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-textarea',
'type' => 'textarea',
'title' => __( '文本域-支持HTML标签', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'default' => 'Default Text',
)
)
) );

// -> START 编辑器
Redux::setSection( $opt_name, array(
'title' => __( '编辑器', 'redux-framework-demo' ),
'id' => 'editor',
'customizer_width' => '500px',
'icon' => 'el el-edit',
) );

Redux::setSection( $opt_name, array(
'title' => __( 'WordPress 编辑器', 'redux-framework-demo' ),
'id' => 'editor-wordpress',
//'icon' => 'el el-home'
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/editor/',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-editor',
'type' => 'editor',
'title' => __( '编辑器', 'redux-framework-demo' ),
'subtitle' => __( '使用你的面板内的WordPress编辑器的任何特性!', 'redux-framework-demo' ),
'default' => '由Redux Framework提供支持',
),
array(
'id' => 'opt-editor-tiny',
'type' => 'editor',
'title' => __( '带媒体按钮的编辑器', 'redux-framework-demo' ),
'default' => '由Redux Framework提供支持',
'args' => array(
'wpautop' => false,
'media_buttons' => false,
'textarea_rows' => 5,
//'tabindex' => 1,
//'editor_css' => '',
'teeny' => false,
//'tinymce' => array(),
'quicktags' => false,
)
),
array(
'id' => 'opt-editor-full',
'type' => 'editor',
'title' => __( '编辑器 - 全宽', 'redux-framework-demo' ),
'full_width' => true
),
),
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/editor/',
) );

Redux::setSection( $opt_name, array(
'title' => __( 'ACE 编辑器', 'redux-framework-demo' ),
'id' => 'editor-ace',
//'icon' => 'el el-home'
'subsection' => true,
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/ace-editor/',
'fields' => array(
array(
'id' => 'opt-ace-editor-css',
'type' => 'ace_editor',
'title' => __( 'CSS 代码', 'redux-framework-demo' ),
'subtitle' => __( '复制你的CSS代码到这里', 'redux-framework-demo' ),
'mode' => 'css',
'theme' => 'monokai',
'desc' => '更多的代码模式可以看这里 ' . 'http://' . 'ace.c9.io/.',
'default' => "#header{\n margin: 0 auto;\n}"
),
array(
'id' => 'opt-ace-editor-js',
'type' => 'ace_editor',
'title' => __( 'JS 代码', 'redux-framework-demo' ),
'subtitle' => __( '复制你的JS代码到这里', 'redux-framework-demo' ),
'mode' => 'javascript',
'theme' => 'chrome',
'desc' => '更多的代码模式可以看这里 ' . 'http://' . 'ace.c9.io/.',
'default' => "jQuery(document).ready(function(){\n\n});"
),
array(
'id' => 'opt-ace-editor-php',
'type' => 'ace_editor',
'full_width' => true,
'title' => __( 'PHP 代码', 'redux-framework-demo' ),
'subtitle' => __( '复制你的PHP代码到这里', 'redux-framework-demo' ),
'mode' => 'php',
'theme' => 'chrome',
'desc' => '更多的代码模式可以看这里 ' . 'http://' . 'ace.c9.io/.',
'default' => ' START 颜色选择
Redux::setSection( $opt_name, array(
'title' => __( '颜色选择', 'redux-framework-demo' ),
'id' => 'color',
'desc' => __( '', 'redux-framework-demo' ),
'icon' => 'el el-brush'
) );

Redux::setSection( $opt_name, array(
'title' => __( '颜色', 'redux-framework-demo' ),
'id' => 'color-Color',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/color/',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-color-title',
'type' => 'color',
'output' => array( '.site-title' ),
'title' => __( '标题颜色', 'redux-framework-demo' ),
'subtitle' => __( '选择标题颜色 (默认: #000)', 'redux-framework-demo' ),
'default' => '#000000',
),
array(
'id' => 'opt-color-footer',
'type' => 'color',
'title' => __( '页脚背景颜色', 'redux-framework-demo' ),
'subtitle' => __( '选择页脚背景色 (默认: #dd9933)', 'redux-framework-demo' ),
'default' => '#dd9933',
'validate' => 'color',
),
),
) );
Redux::setSection( $opt_name, array(
'title' => __( '颜色过渡', 'redux-framework-demo' ),
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/color-gradient/',
'id' => 'color-gradient',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-color-header',
'type' => 'color_gradient',
'title' => __( 'Header Gradient Color Option', 'redux-framework-demo' ),
'subtitle' => __( '只能对此字段类型进行颜色验证', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'default' => array(
'from' => '#1e73be',
'to' => '#00897e'
)
),
)
) );
Redux::setSection( $opt_name, array(
'title' => __( '颜色 RGBA', 'redux-framework-demo' ),
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/color-rgba/',
'id' => 'color-rgba',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-color-rgba',
'type' => 'color_rgba',
'title' => __( '颜色 RGBA', 'redux-framework-demo' ),
'subtitle' => __( 'RGBA 颜色格式', 'redux-framework-demo' ),
'default' => array(
'color' => '#7e33dd',
'alpha' => '.8'
),
//'output' => array( 'body' ),
'mode' => 'background',
//'validate' => 'colorrgba',
),
)
) );
Redux::setSection( $opt_name, array(
'title' => __( '链接颜色', 'redux-framework-demo' ),
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/link-color/',
'id' => 'color-link',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-link-color',
'type' => 'link_color',
'title' => __( 'Links Color Option', 'redux-framework-demo' ),
'subtitle' => __( 'Only color validation can be done on this field type', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
//'regular' => false, // Disable Regular Color
//'hover' => false, // Disable Hover Color
//'active' => false, // Disable Active Color
//'visited' => true, // Enable Visited Color
'default' => array(
'regular' => '#aaa',
'hover' => '#bbb',
'active' => '#ccc',
)
),
)
) );

Redux::setSection( $opt_name, array(
'title' => __( '调色板', 'redux-framework-demo' ),
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/palette-color/',
'id' => 'color-palette',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-palette-color',
'type' => 'palette',
'title' => __( 'Palette Color Option', 'redux-framework-demo' ),
'subtitle' => __( 'Only color validation can be done on this field type', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'default' => 'red',
'palettes' => array(
'red' => array(
'#ef9a9a',
'#f44336',
'#ff1744',
),
'pink' => array(
'#fce4ec',
'#f06292',
'#e91e63',
'#ad1457',
'#f50057',
),
'cyan' => array(
'#e0f7fa',
'#80deea',
'#26c6da',
'#0097a7',
'#00e5ff',
),
)
),
)
) );

// -> START 综合设计域 - 包括margin padding color background-color border
Redux::setSection( $opt_name, array(
'title' => __( '设计字段', 'redux-framework-demo' ),
'id' => 'design',
'desc' => __( '', 'redux-framework-demo' ),
'icon' => 'el el-wrench'
) );

Redux::setSection( $opt_name, array(
'title' => __( '背景', 'redux-framework-demo' ),
'id' => 'design-background',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-background',
'type' => 'background',
'output' => array( 'body' ),
'title' => __( '主体背景', 'redux-framework-demo' ),
'subtitle' => __( '主体背景与图像、颜色等。', 'redux-framework-demo' ),
//'default' => '#FFFFFF',
),

),
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/background/',
) );

Redux::setSection( $opt_name, array(
'title' => __( '边框', 'redux-framework-demo' ),
'id' => 'design-border',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/border/',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-header-border',
'type' => 'border',
'title' => __( '头部边框选项', 'redux-framework-demo' ),
'subtitle' => __( '只能对此字段类型进行颜色验证', 'redux-framework-demo' ),
'output' => array( '.site-header' ),
// An array of CSS selectors to apply this font style to
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'default' => array(
'border-color' => '#1e73be',
'border-style' => 'solid',
'border-top' => '3px',
'border-right' => '3px',
'border-bottom' => '3px',
'border-left' => '3px'
),
),
array(
'id' => 'opt-header-border-expanded',
'type' => 'border',
'title' => __( '头部边框选项', 'redux-framework-demo' ),
'subtitle' => __( '只能对此字段类型进行颜色验证', 'redux-framework-demo' ),
'output' => array( '.site-header' ),
'all' => false,
// An array of CSS selectors to apply this font style to
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'default' => array(
'border-color' => '#1e73be',
'border-style' => 'solid',
'border-top' => '3px',
'border-right' => '3px',
'border-bottom' => '3px',
'border-left' => '3px'
)
),
)
) );

Redux::setSection( $opt_name, array(
'title' => __( '尺寸', 'redux-framework-demo' ),
'id' => 'design-dimensions',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/dimensions/',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-dimensions',
'type' => 'dimensions',
'units' => array( 'em', 'px', '%' ), // You can specify a unit value. Possible: px, em, %
'units_extended' => 'true', // Allow users to select any type of unit
'title' => __( '尺寸(宽/高)选项', 'redux-framework-demo' ),
'subtitle' => __( '允许用户选择宽度、高度和/或单位', 'redux-framework-demo' ),
'desc' => __( '您可以启用或禁用此字段的任何部分,宽度、高度或单位。', 'redux-framework-demo' ),
'default' => array(
'width' => 200,
'height' => 100,
)
),
array(
'id' => 'opt-dimensions-width',
'type' => 'dimensions',
'units' => array( 'em', 'px', '%' ), // You can specify a unit value. Possible: px, em, %
'units_extended' => 'true', // Allow users to select any type of unit
'title' => __( '尺寸(宽)选项', 'redux-framework-demo' ),
'subtitle' => __( '允许用户选择宽度、高度和/或单位', 'redux-framework-demo' ),
'desc' => __( '您可以启用或禁用此字段的任何部分,宽度、高度或单位。', 'redux-framework-demo' ),
'height' => false,
'default' => array(
'width' => 200,
'height' => 100,
)
),
)
) );

Redux::setSection( $opt_name, array(
'title' => __( '间距', 'redux-framework-demo' ),
'id' => 'design-spacing',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/spacing/',
'subsection' => true,
'fields' => array(

array(
'id' => 'opt-spacing',
'type' => 'spacing',
'output' => array( '.site-header' ),
// An array of CSS selectors to apply this font style to
'mode' => 'margin',
// absolute, padding, margin, defaults to padding
'all' => true,
// Have one field that applies to all
//'top' => false, // Disable the top
//'right' => false, // Disable the right
//'bottom' => false, // Disable the bottom
//'left' => false, // Disable the left
//'units' => 'em', // You can specify a unit value. Possible: px, em, %
//'units_extended'=> 'true', // Allow users to select any type of unit
//'display_units' => 'false', // Set to false to hide the units if the units are specified
'title' => __( '内边距/外边距选项', 'redux-framework-demo' ),
'subtitle' => __( '允许用户选择他们想要的间距或边距', 'redux-framework-demo' ),
'desc' => __( '您可以启用或禁用此字段的任何部分,上、右、下、左或单位', 'redux-framework-demo' ),
'default' => array(
'margin-top' => '1px',
'margin-right' => '2px',
'margin-bottom' => '3px',
'margin-left' => '4px'
)
),
array(
'id' => 'opt-spacing-expanded',
'type' => 'spacing',
// An array of CSS selectors to apply this font style to
'mode' => 'margin',
// absolute, padding, margin, defaults to padding
'all' => false,
// Have one field that applies to all
//'top' => false, // Disable the top
//'right' => false, // Disable the right
//'bottom' => false, // Disable the bottom
//'left' => false, // Disable the left
'units' => array( 'em', 'px', '%' ), // You can specify a unit value. Possible: px, em, %
'units_extended' => 'true', // Allow users to select any type of unit
//'display_units' => 'false', // Set to false to hide the units if the units are specified
'title' => __( '内边距/外边距选项', 'redux-framework-demo' ),
'subtitle' => __( '允许用户选择他们想要的间距或边距', 'redux-framework-demo' ),
'desc' => __( '您可以启用或禁用此字段的任何部分,上、右、下、左或单位', 'redux-framework-demo' ),
'default' => array(
'margin-top' => '1px',
'margin-right' => '2px',
'margin-bottom' => '3px',
'margin-left' => '4px'
)
),
)
) );

// -> START 媒体上传
Redux::setSection( $opt_name, array(
'title' => __( '媒体上传', 'redux-framework-demo' ),
'id' => 'media',
'desc' => __( '', 'redux-framework-demo' ),
'icon' => 'el el-picture'
) );

Redux::setSection( $opt_name, array(
'title' => __( '相册', 'redux-framework-demo' ),
'id' => 'media-gallery',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/gallery/',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-gallery',
'type' => 'gallery',
'title' => __( '新增/编辑 相册', 'redux-framework-demo' ),
'subtitle' => __( '使用WordPress自带的上传途径上传新的图片或选择已存在的图片来创建新相册', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
),
)
) );

Redux::setSection( $opt_name, array(
'title' => __( '媒体文件', 'redux-framework-demo' ),
'id' => 'media-media',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/media/',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-media',
'type' => 'media',
'url' => true,
'title' => __( '媒体文件 (带URL)', 'redux-framework-demo' ),
'compiler' => 'true',
//'mode' => false, // Can be set to false to allow any media type, or can also be set to any mime type.
'desc' => __( '有input有URL,但禁止编辑input域', 'redux-framework-demo' ),
'subtitle' => __( '使用WordPress自带的上传途径上传文件', 'redux-framework-demo' ),
'default' => array( 'url' => 'http://s.wordpress.org/style/images/codeispoetry.png' ),
//'hint' => array(
// 'title' => 'Hint Title',
// 'content' => 'This is a hint for the media field with a Title.',
//)
),
array(
'id' => 'media-no-url',
'type' => 'media',
'title' => __( '媒体文件 (不带URL无预览)', 'redux-framework-demo' ),
'desc' => __( '无input域,无预览图', 'redux-framework-demo' ),
'subtitle' => __( '使用wordpress自带的上传途径上传文件', 'redux-framework-demo' ),
),
array(
'id' => 'media-no-preview',
'type' => 'media',
'preview' => false,
'title' => __( '媒体文件 (有input无URL无预览)', 'redux-framework-demo' ),
'desc' => __( '有input域,无URL无预览图', 'redux-framework-demo' ),
'subtitle' => __( '使用wordpress自带的上传途径上传文件', 'redux-framework-demo' ),
'hint' => array(
'title' => 'Test',
'content' => '这是一段提示

可以使用html标签',
)
),
array(
'id' => 'opt-random-upload',
'type' => 'media',
'title' => __( '无input无URL有预览,全宽', 'redux-framework-demo' ),
'full_width' => true,
'mode' => false,
// Can be set to false to allow any media type, or can also be set to any mime type.
'desc' => __( '无input无URL', 'redux-framework-demo' ),
'subtitle' => __( '使用wordpress自带的上传途径上传文件', 'redux-framework-demo' ),
),
)
) );

Redux::setSection( $opt_name, array(
'title' => __( '上传滑块', 'redux-framework-demo' ),
'id' => 'additional-slides',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/slides/',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-slides',
'type' => 'slides',
'title' => __( '滑块设置', 'redux-framework-demo' ),
'subtitle' => __( '可以无限制插入或拖动滑块部件', 'redux-framework-demo' ),
'desc' => __( '此设置项会将所有部件设置值写入一个多维数组,供开发者使用foreach等循环调用输出', 'redux-framework-demo' ),
'placeholder' => array(
'title' => __( '这是滑块标题', 'redux-framework-demo' ),
'description' => __( '描述', 'redux-framework-demo' ),
'url' => __( '这里可以设置一个链接,例如 http://www.ankium.com', 'redux-framework-demo' ),
),
),
)
) );

// -> START 小部件设置项
Redux::setSection( $opt_name, array(
'title' => __( '小部件', 'redux-framework-demo' ),
'id' => 'presentation',
'desc' => __( '', 'redux-framework-demo' ),
'icon' => 'el el-screen'
) );

Redux::setSection( $opt_name, array(
'title' => __( '分割部件', 'redux-framework-demo' ),
'id' => 'presentation-divide',
'desc' => __( '像左侧菜单一样创建一条分割线 用来分隔各个项目', 'redux-framework-demo' ) . '
' . __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/divide/',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-divide',
'type' => 'divide'
),
),
) );

Redux::setSection( $opt_name, array(
'title' => __( '信息部件', 'redux-framework-demo' ),
'id' => 'presentation-info',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/info/',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-info-field',
'type' => 'info',
'desc' => __( '典型信息部件', 'redux-framework-demo' )
),
array(
'id' => 'opt-notice-info1',
'type' => 'info',
'style' => 'info',
'title' => __( '标题', 'redux-framework-demo' ),
'desc' => __( '这是一个info字段,它应用info样式,默认情况下,将应用"普通"样式', 'redux-framework-demo' )
),
array(
'id' => 'opt-info-warning',
'type' => 'info',
'style' => 'warning',
'title' => __( '标题', 'redux-framework-demo' ),
'desc' => __( '这是一个info字段,应用了"警告"样式', 'redux-framework-demo' )
),
array(
'id' => 'opt-info-success',
'type' => 'info',
'style' => 'success',
'icon' => 'el el-info-circle',
'title' => __( '标题', 'redux-framework-demo' ),
'desc' => __( '这是一个info字段,其应用的样式为"成功"样式和图标', 'redux-framework-demo' )
),
array(
'id' => 'opt-info-critical',
'type' => 'info',
'style' => 'critical',
'icon' => 'el el-info-circle',
'title' => __( '标题', 'redux-framework-demo' ),
'desc' => __( '这是一个info字段,应用了"关键"样式和图标', 'redux-framework-demo' )
),
array(
'id' => 'opt-info-custom',
'type' => 'info',
'style' => 'custom',
'color' => 'purple',
'icon' => 'el el-info-circle',
'title' => __( '标题', 'redux-framework-demo' ),
'desc' => __( '这是一个info字段,应用了自定义样式,传递了颜色参数,还有一个图标', 'redux-framework-demo' )
),
array(
'id' => 'opt-info-normal',
'type' => 'info',
'notice' => false,
'title' => __( '标题', 'redux-framework-demo' ),
'desc' => __( '这是一个信息不通知字段,它应用了普通的样式', 'redux-framework-demo' )
),
array(
'id' => 'opt-notice-info',
'type' => 'info',
'notice' => false,
'style' => 'info',
'title' => __( '标题', 'redux-framework-demo' ),
'desc' => __( '这是一个信息不通知字段,它应用了info样式', 'redux-framework-demo' )
),
array(
'id' => 'opt-notice-warning',
'type' => 'info',
'notice' => false,
'style' => 'warning',
'icon' => 'el el-info-circle',
'title' => __( '标题', 'redux-framework-demo' ),
'desc' => __( '这是一个信息不通知字段,其中应用了"警告"样式和一个图标', 'redux-framework-demo' )
),
array(
'id' => 'opt-notice-success',
'type' => 'info',
'notice' => false,
'style' => 'success',
'icon' => 'el el-info-circle',
'title' => __( '标题', 'redux-framework-demo' ),
'desc' => __( '这是一个信息不通知字段,应用了"成功"样式和一个图标', 'redux-framework-demo' )
),
array(
'id' => 'opt-notice-critical',
'type' => 'info',
'notice' => false,
'style' => 'critical',
'icon' => 'el el-info-circle',
'title' => __( '标题', 'redux-framework-demo' ),
'desc' => __( '这是一个非注意字段,应用了"关键"样式和一个图标', 'redux-framework-demo' )
),
)
) );

Redux::setSection( $opt_name, array(
'title' => __( '组合部件', 'redux-framework-demo' ),
'id' => 'presentation-section',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/section/',
'subsection' => true,
'fields' => array(
array(
'id' => 'section-start',
'type' => 'section',
'title' => __( '组合部件的例子', 'redux-framework-demo' ),
'subtitle' => __( '你可以创建独立的组合部件', 'redux-framework-demo' ),
'indent' => true, // Indent all options below until the next 'section' option is set.
),
array(
'id' => 'section-test',
'type' => 'text',
'title' => __( '标题', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
),
array(
'id' => 'section-test-media',
'type' => 'media',
'title' => __( '标题', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
),
array(
'id' => 'section-end',
'type' => 'section',
'indent' => false, // Indent all options below until the next 'section' option is set.
),
array(
'id' => 'section-info',
'type' => 'info',
'desc' => __( '下面可新增组合部件', 'redux-framework-demo' ),
),
),
) );
Redux::setSection( $opt_name, array(
'id' => 'presentation-divide-sample',
'type' => 'divide',
) );

// -> START 开关按钮
Redux::setSection( $opt_name, array(
'title' => __( '开关按钮', 'redux-framework-demo' ),
'id' => 'switch_buttonset',
'desc' => __( '', 'redux-framework-demo' ),
'icon' => 'el el-cogs'
) );

Redux::setSection( $opt_name, array(
'title' => __( '按钮', 'redux-framework-demo' ),
'id' => 'switch_buttonset-set',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/button-set/',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-button-set',
'type' => 'button_set',
'title' => __( '单选按钮设置', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
//Must provide key => value pairs for radio options
'options' => array(
'1' => 'Opt 1',
'2' => 'Opt 2',
'3' => 'Opt 3'
),
'default' => '2'
),
array(
'id' => 'opt-button-set-multi',
'type' => 'button_set',
'title' => __( '复选按钮设置', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'multi' => true,
//Must provide key => value pairs for radio options
'options' => array(
'1' => 'Opt 1',
'2' => 'Opt 2',
'3' => 'Opt 3'
),
'default' => array( '2', '3' )
),

)
) );

Redux::setSection( $opt_name, array(
'title' => __( '开关', 'redux-framework-demo' ),
'id' => 'switch_buttonset-switch',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/switch/',
'subsection' => true,
'fields' => array(

array(
'id' => 'switch-on',
'type' => 'switch',
'title' => __( '开关-开', 'redux-framework-demo' ),
'subtitle' => __( '现在是默认打开状态!', 'redux-framework-demo' ),
'default' => true,
),
array(
'id' => 'switch-off',
'type' => 'switch',
'title' => __( '开关-关', 'redux-framework-demo' ),
'subtitle' => __( '现在是默认关闭状态!', 'redux-framework-demo' ),
//'options' => array('on', 'off'),
'default' => false,
),
array(
'id' => 'switch-parent',
'type' => 'switch',
'title' => __( '开关联动子项目-打开即显示子项目', 'redux-framework-demo' ),
'subtitle' => __( '默认关闭,隐藏子项目!', 'redux-framework-demo' ),
'default' => 0,
'on' => 'Enabled',
'off' => 'Disabled',
),
array(
'id' => 'switch-child1',
'type' => 'switch',
'required' => array( 'switch-parent', '=', '1' ),// 设置折叠锚点id ,switch-parent 表示由id为switch-parent 的开关控制此项的折叠
'title' => __( '子项-1(再无子项)', 'redux-framework-demo' ),
'subtitle' => __( '注意与开关id锚点挂钩', 'redux-framework-demo' ),
'desc' => __( '设置为此ID的折叠项将隐藏,除非将其设置为适当的值。', 'redux-framework-demo' ),
'default' => false,
),
array(
'id' => 'switch-child2',
'type' => 'switch',
'required' => array( 'switch-parent', '=', '1' ),// 设置折叠锚点id ,switch-parent 表示由id为switch-parent 的开关控制此项的折叠
'title' => __( '子项-2(还有子项)', 'redux-framework-demo' ),
'subtitle' => __( '注意与开关id锚点挂钩', 'redux-framework-demo' ),
'desc' => __( '设置为此ID的折叠项将隐藏,除非将其设置为适当的值。', 'redux-framework-demo' ),
'default' => false,
),
)
) );

// -> START 下拉选择
Redux::setSection( $opt_name, array(
'title' => __( '下拉选择', 'redux-framework-demo' ),
'id' => 'select',
'icon' => 'el el-list-alt'
) );

Redux::setSection( $opt_name, array(
'title' => __( 'Select', 'redux-framework-demo' ),
'id' => 'select-select',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/select/',
'subsection' => true,
'fields' => array(

array(
'id' => 'opt-select',
'type' => 'select',
'title' => __( '典型下拉选择', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
//Must provide key => value pairs for select options
'options' => array(
'1' => 'Opt 1',
'2' => 'Opt 2',
'3' => 'Opt 3',
),
'default' => '2'
),
array(
'id' => 'opt-select-stylesheet',
'type' => 'select',
'title' => __( '自定义值下拉选择', 'redux-framework-demo' ),
'subtitle' => __( '选择一个主题样式', 'redux-framework-demo' ),
'options' => array( 'default.css' => 'default.css', 'color1.css' => 'color1.css' ),
'default' => 'default.css',
),
array(
'id' => 'opt-select-optgroup',
'type' => 'select',
'title' => __( '选项组下拉选择', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
//Must provide key => value pairs for select options
'options' => array(
'Group 1' => array(
'1' => 'Opt 1',
'2' => 'Opt 2',
'3' => 'Opt 3',
),
'Group 2' => array(
'4' => 'Opt 4',
'5' => 'Opt 5',
'6' => 'Opt 6',
),
'7' => 'Opt 7',
'8' => 'Opt 8',
'9' => 'Opt 9',
),
'default' => '2'
),
array(
'id' => 'opt-multi-select',
'type' => 'select',
'multi' => true,
'title' => __( '多选下拉', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
//Must provide key => value pairs for radio options
'options' => array(
'1' => 'Opt 1',
'2' => 'Opt 2',
'3' => 'Opt 3'
),
//'required' => array( 'opt-select', 'equals', array( '1', '3' ) ),
'default' => array( '2', '3' )
),
array(
'id' => 'opt-info',
'type' => 'info',
'desc' => __( '您可以轻松地从WordPress中添加各种数据', 'redux-framework-demo' ),
),
array(
'id' => 'opt-select-categories',
'type' => 'select',
'data' => 'categories',
'title' => __( '网站[ 分类 ]输出下拉选择', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
),
array(
'id' => 'opt-select-categories-multi',
'type' => 'select',
'data' => 'categories',
'multi' => true,
'title' => __( '网站[ 分类 ]输出多选下拉', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
),
array(
'id' => 'opt-select-pages',
'type' => 'select',
'data' => 'pages',
'title' => __( '网站[ 页面 ]输出下拉选择', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
),
array(
'id' => 'opt-multi-select-pages',
'type' => 'select',
'data' => 'pages',
'multi' => true,
'title' => __( '网站[ 页面 ]输出多选下拉', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
),
array(
'id' => 'opt-select-tags',
'type' => 'select',
'data' => 'tags',
'title' => __( '网站[ 标签 ]输出下拉选择', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
),
array(
'id' => 'opt-multi-select-tags',
'type' => 'select',
'data' => 'tags',
'multi' => true,
'title' => __( '网站[ 标签 ]输出多选下拉', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
),
array(
'id' => 'opt-select-menus',
'type' => 'select',
'data' => 'menus',
'title' => __( '网站[ 菜单 ]输出下拉选择', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
),
array(
'id' => 'opt-multi-select-menus',
'type' => 'select',
'data' => 'menu',
'multi' => true,
'title' => __( '网站[ 菜单 ]输出多选下拉', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
),
array(
'id' => 'opt-select-post-type',
'type' => 'select',
'data' => 'post_type',
'title' => __( '网站[ 文章类型 ]输出下拉选择', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
),
array(
'id' => 'opt-multi-select-post-type',
'type' => 'select',
'data' => 'post_type',
'multi' => true,
'title' => __( '网站[ 文章类型 ]输出多选下拉', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
),
array(
'id' => 'opt-multi-select-sortable',
'type' => 'select',
'data' => 'post_type',
'multi' => true,
'sortable' => true,
'title' => __( '网站[ 文章类型 ]输出多选下拉+拖动排序', 'redux-framework-demo' ),
'subtitle' => __( '此字段也已启用“排序”!', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
),
array(
'id' => 'opt-select-posts',
'type' => 'select',
'data' => 'post',
'title' => __( '网站[ 文章 ]输出下拉选择', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
),
array(
'id' => 'opt-multi-select-posts',
'type' => 'select',
'data' => 'post',
'multi' => true,
'title' => __( '网站[ 文章 ]输出多选下拉', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
),
array(
'id' => 'opt-select-roles',
'type' => 'select',
'data' => 'roles',
'title' => __( '网站[ 用户身份 ]下拉选择', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
),
array(
'id' => 'opt-select-capabilities',
'type' => 'select',
'data' => 'capabilities',
'multi' => true,
'title' => __( '网站[ 用户权限 ]多选下拉', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
),
array(
'id' => 'opt-select-elusive',
'type' => 'select',
'data' => 'elusive-icons',
'title' => __( '图标下拉选择', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '这是所有难以捉摸的图标的名字和图标的列表', 'redux-framework-demo' ),
),
array(
'id' => 'opt-select-users',
'type' => 'select',
'data' => 'users',
'title' => __( '网站[ 用户 ]下拉选择', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
),
)
) );
Redux::setSection( $opt_name, array(
'title' => __( '图片单选', 'redux-framework-demo' ),
'id' => 'select-image_select',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/image-select/',
'subsection' => true,
'fields' => array(

array(
'id' => 'opt-image-select-layout',
'type' => 'image_select',
'title' => __( '图片选择 (网站布局)', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '利用图片视图选择布局模式', 'redux-framework-demo' ),
//Must provide key => value(array:title|img) pairs for radio options
'options' => array(
'1' => array(
'alt' => '1 Column',
'img' => ReduxFramework::$_url . 'assets/img/1col.png'
),
'2' => array(
'alt' => '2 Column Left',
'img' => ReduxFramework::$_url . 'assets/img/2cl.png'
),
'3' => array(
'alt' => '2 Column Right',
'img' => ReduxFramework::$_url . 'assets/img/2cr.png'
),
'4' => array(
'alt' => '3 Column Middle',
'img' => ReduxFramework::$_url . 'assets/img/3cm.png'
),
'5' => array(
'alt' => '3 Column Left',
'img' => ReduxFramework::$_url . 'assets/img/3cl.png'
),
'6' => array(
'alt' => '3 Column Right',
'img' => ReduxFramework::$_url . 'assets/img/3cr.png'
)
),
'default' => '2'
),
array(
'id' => 'opt-patterns',
'type' => 'image_select',
'tiles' => true,
'title' => __( '图片选择 (纹理)', 'redux-framework-demo' ),
'subtitle' => __( '子标题,选择一个背景模式', 'redux-framework-demo' ),
'default' => 0,
'options' => $sample_patterns
,
),
array(
'id' => 'opt-image-select',
'type' => 'image_select',
'title' => __( '图片选择 (对齐方式)', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
//Must provide key => value(array:title|img) pairs for radio options
'options' => array(
'1' => array( 'title' => 'Opt 1', 'img' => 'images/align-none.png' ),
'2' => array( 'title' => 'Opt 2', 'img' => 'images/align-left.png' ),
'3' => array( 'title' => 'Opt 3', 'img' => 'images/align-center.png' ),
'4' => array( 'title' => 'Opt 4', 'img' => 'images/align-right.png' )
),
'default' => '2'
),
array(
'id' => 'opt-presets',
'type' => 'image_select',
'presets' => true,
'full_width' => true,
'title' => __( 'Preset', 'redux-framework-demo' ),
'subtitle' => __( '这允许您设置一个JSON字符串或数组来覆盖主题中的多个首选项', 'redux-framework-demo' ),
'default' => 0,
'desc' => __( '这允许您设置一个JSON字符串或数组来覆盖主题中的多个首选项', 'redux-framework-demo' ),
'options' => array(
'1' => array(
'alt' => 'Preset 1',
'img' => ReduxFramework::$_url . '../sample/presets/preset1.png',
'presets' => array(
'switch-on' => 1,
'switch-off' => 1,
'switch-parent' => 1
)
),
'2' => array(
'alt' => 'Preset 2',
'img' => ReduxFramework::$_url . '../sample/presets/preset2.png',
'presets' => '{"opt-slider-label":"1", "opt-slider-text":"10"}'
),
),
),
)
) );

Redux::setSection( $opt_name, array(
'title' => __( '图片下拉选择', 'redux-framework-demo' ),
'id' => 'select-select_image',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/select-image/',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-select_image-field',
'type' => 'select_image',
'title' => __( '下拉选择(有预览)', 'redux-framework-demo' ),
'subtitle' => __( '选中图像的预览将出现在选中框的下面', 'redux-framework-demo' ),
'options' => array(
array(
'alt' => 'Preset 1',
'img' => ReduxFramework::$_url . '../sample/presets/preset1.png',
),
array(
'alt' => 'Preset 2',
'img' => ReduxFramework::$_url . '../sample/presets/preset2.png',
),
),
'default' => ReduxFramework::$_url . '../sample/presets/preset2.png',
),

array(
'id' => 'opt-select-image',
'type' => 'select_image',
'title' => __( '选择图像', 'redux-framework-demo' ),
'subtitle' => __( '选中图像的预览将出现在选中框的下面', 'redux-framework-demo' ),
'options' => $sample_patterns,
'default' => ReduxFramework::$_url . '../sample/patterns/triangular.png',
),
)
) );

// -> START 滑块 / 微调器
Redux::setSection( $opt_name, array(
'title' => __( '滑块 / 微调器', 'redux-framework-demo' ),
'id' => 'slider_spinner',
'desc' => __( '', 'redux-framework-demo' ),
'icon' => 'el el-adjust-alt'
) );

Redux::setSection( $opt_name, array(
'title' => __( '滑块', 'redux-framework-demo' ),
'id' => 'slider_spinner-slider',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/slider/',
'fields' => array(

array(
'id' => 'opt-slider-label',
'type' => 'slider',
'title' => __( '滑块类型 1 (典型)', 'redux-framework-demo' ),
'subtitle' => __( '左侧显示数值', 'redux-framework-demo' ),
'desc' => __( '滑块描述——最小: 1, 最大: 500, 步距: 1, 默认值: 250', 'redux-framework-demo' ),
'default' => 250,
'min' => 1,
'step' => 1,
'max' => 500,
'display_value' => 'label'
),
array(
'id' => 'opt-slider-text',
'type' => 'slider',
'title' => __( '滑块类型 2 (步距为5)', 'redux-framework-demo' ),
'subtitle' => __( '左侧显示数值 (可修改数值)', 'redux-framework-demo' ),
'desc' => __( '滑块描述——最小: 0, 最大: 300, 步距: 5, 默认值: 75', 'redux-framework-demo' ),
'default' => 75,
'min' => 0,
'step' => 5,
'max' => 300,
'display_value' => 'text'
),
array(
'id' => 'opt-slider-select',
'type' => 'slider',
'title' => __( '滑块类型 3 (两端控制)', 'redux-framework-demo' ),
'subtitle' => __( '左右端可设置数值', 'redux-framework-demo' ),
'desc' => __( '滑块描述——最小: 0, 最大: 500, 步距: 5, 左端默认值: 100', 'redux-framework-demo' ),
'default' => array(
1 => 100,
2 => 300,
),
'min' => 0,
'step' => 5,
'max' => '500',
'display_value' => 'select',
'handles' => 2,
),
array(
'id' => 'opt-slider-float',
'type' => 'slider',
'title' => __( '滑块类型 4 (小数类型)', 'redux-framework-demo' ),
'subtitle' => __( '显示为小数', 'redux-framework-demo' ),
'desc' => __( '滑块描述——最小: 0, 最大: 1, 步距: 0.1, 默认值: 0.5', 'redux-framework-demo' ),
'default' => .5,
'min' => 0,
'step' => .1,
'max' => 1,
'resolution' => 0.1,
'display_value' => 'text'
),

),
'subsection' => true,
) );

Redux::setSection( $opt_name, array(
'title' => __( '微调器', 'redux-framework-demo' ),
'id' => 'slider_spinner-spinner',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/spinner/',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-spinner',
'type' => 'spinner',
'title' => __( 'JQuery UI Spinner 示例 1', 'redux-framework-demo' ),
'desc' => __( 'JQuery UI spinner 说明——最小:20, 最大: 100, 步距:20, 默认值: 40', 'redux-framework-demo' ),
'default' => '40',
'min' => '20',
'step' => '20',
'max' => '100',
),
)
) );

// -> START 文字排版相关
Redux::setSection( $opt_name, array(
'title' => __( '文字排版相关', 'redux-framework-demo' ),
'id' => 'typography',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/typography/',
'icon' => 'el el-font',
'fields' => array(
array(
'id' => 'opt-typography-body',
'type' => '文字排版',
'title' => __( '正文字体', 'redux-framework-demo' ),
'subtitle' => __( '指定正文字体属性.', 'redux-framework-demo' ),
'google' => true,
'default' => array(
'color' => '#dd9933',
'font-size' => '30px',
'font-family' => 'Arial,Helvetica,sans-serif',
'font-weight' => 'Normal',
),
),
array(
'id' => 'opt-typography',
'type' => 'typography',
'title' => __( 'Typography h2.site-description', 'redux-framework-demo' ),
//'compiler' => true, // Use if you want to hook in your own CSS compiler
//'google' => false,
// Disable google fonts. Won't work if you haven't defined your google api key
'font-backup' => true,
// Select a backup non-google font in addition to a google font
//'font-style' => false, // Includes font-style and weight. Can use font-style or font-weight to declare
//'subsets' => false, // Only appears if google is true and subsets not set to false
//'font-size' => false,
//'line-height' => false,
//'word-spacing' => true, // Defaults to false
//'letter-spacing'=> true, // Defaults to false
//'color' => false,
//'preview' => false, // Disable the previewer
'all_styles' => true,
// Enable all Google Font style/weight variations to be added to the page
'output' => array( 'h2.site-description, .entry-title' ),
// An array of CSS selectors to apply this font style to dynamically
'compiler' => array( 'h2.site-description-compiler' ),
// An array of CSS selectors to apply this font style to dynamically
'units' => 'px',
// Defaults to px
'subtitle' => __( '可以单独调用每个属性的排版选项', 'redux-framework-demo' ),
'default' => array(
'color' => '#333',
'font-style' => '700',
'font-family' => 'Abel',
'google' => true,
'font-size' => '33px',
'line-height' => '40px'
),
),
)
) );

// -> START 额外的类型
Redux::setSection( $opt_name, array(
'title' => __( '额外的类型', 'redux-framework-demo' ),
'id' => 'additional',
'desc' => __( '', 'redux-framework-demo' ),
'icon' => 'el el-magic',
//'fields' => array(
// array(
// 'id' => 'opt-customizer-only-in-section',
// 'type' => 'select',
// 'title' => __( 'Customizer Only Option', 'redux-framework-demo' ),
// 'subtitle' => __( 'The subtitle is NOT visible in customizer', 'redux-framework-demo' ),
// 'desc' => __( 'The field desc is NOT visible in customizer.', 'redux-framework-demo' ),
// 'customizer_only' => true,
// //Must provide key => value pairs for select options
// 'options' => array(
// '1' => 'Opt 1',
// '2' => 'Opt 2',
// '3' => 'Opt 3'
// ),
// 'default' => '2'
// ),
//)
) );

Redux::setSection( $opt_name, array(
'title' => __( '日期', 'redux-framework-demo' ),
'id' => 'additional-date',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/date/',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-datepicker',
'type' => 'date',
'title' => __( '日期选项', 'redux-framework-demo' ),
'subtitle' => __( '本设置子标题', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' )
),
),
) );

Redux::setSection( $opt_name, array(
'title' => __( '分类', 'redux-framework-demo' ),
'id' => 'additional-sorter',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/sorter/',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-homepage-layout',
'type' => 'sorter',
'title' => '高级布局管理器',
'subtitle' => '可以添加多个拖放区域或列',
'compiler' => 'true',
'options' => array(
'enabled' => array(
'highlights' => 'Highlights',
'slider' => 'Slider',
'staticpage' => 'Static Page',
'services' => 'Services'
),
'disabled' => array(),
'backup' => array(),
),
'limits' => array(
'disabled' => 1,
'backup' => 2,
),
),
array(
'id' => 'opt-homepage-layout-2',
'type' => 'sorter',
'title' => '主页布局管理器',
'desc' => '组织您希望布局出现在主页上的方式',
'compiler' => 'true',
'options' => array(
'disabled' => array(
'highlights' => 'Highlights',
'slider' => 'Slider',
),
'enabled' => array(
'staticpage' => 'Static Page',
'services' => 'Services'
),
),
),
)

) );

Redux::setSection( $opt_name, array(
'title' => __( 'Raw', 'redux-framework-demo' ),
'id' => 'additional-raw',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/raw/',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-raw_info_4',
'type' => 'raw',
'title' => __( 'Standard Raw Field', 'redux-framework-demo' ),
'subtitle' => __( 'Subtitle', 'redux-framework-demo' ),
'desc' => __( 'Description', 'redux-framework-demo' ),
'content' => $sampleHTML,
),
array(
'id' => 'opt-raw_info_5',
'type' => 'raw',
'full_width' => false,
'title' => __( 'Raw Field full_width False', 'redux-framework-demo' ),
'subtitle' => __( 'Subtitle', 'redux-framework-demo' ),
'desc' => __( 'Description', 'redux-framework-demo' ),
'content' => $sampleHTML,
),
)
) );

Redux::setSection( $opt_name, array(
'title' => __( '高级功能', 'redux-framework-demo' ),
'icon' => 'el el-thumbs-up',
// 'submenu' => false, // Setting submenu to false on a given section will hide it from the WordPress sidebar menu!
) );

Redux::setSection( $opt_name, array(
'title' => __( '回调', 'redux-framework-demo' ),
'id' => 'additional-callback',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/fields/callback/',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-custom-callback',
'type' => 'callback',
'title' => __( 'Custom Field Callback', 'redux-framework-demo' ),
'subtitle' => __( 'This is a completely unique field type', 'redux-framework-demo' ),
'desc' => __( 'This is created with a callback function, so anything goes in this field. Make sure to define the function though.', 'redux-framework-demo' ),
'callback' => 'redux_my_custom_field'
),
)
) );

// -> START 验证
Redux::setSection( $opt_name, array(
'title' => __( '验证字段', 'redux-framework-demo' ),
'id' => 'validation',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/the-basics/validation/',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-text-email',
'type' => 'text',
'title' => __( '文本选项-电子邮件验证', 'redux-framework-demo' ),
'subtitle' => __( '这是一个在表格选项中标题字段下的小空间,可以放置附加信息', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'validate' => 'email',
'msg' => 'custom error message',
'default' => 'sudons@msn.cn',
),
array(
'id' => 'opt-text-post-type',
'type' => 'text',
'title' => __( '带有数据属性的文本选项', 'redux-framework-demo' ),
'subtitle' => __( '如果需要,还可以传递一个选项数组,将默认值设置为任何您喜欢的', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'data' => 'post_type',
),
array(
'id' => 'opt-multi-text',
'type' => 'multi_text',
'title' => __( '多文本选项-颜色验证', 'redux-framework-demo' ),
'validate' => 'color',
'subtitle' => __( '如果输入无效的颜色,它将被删除(尝试使用文本“blue”作为颜色)', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' )
),
array(
'id' => 'opt-text-url',
'type' => 'text',
'title' => __( '文本选项-URL验证', 'redux-framework-demo' ),
'subtitle' => __( '这必须是个URL', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'validate' => 'url',
'default' => 'http://reduxframework.com',
),
array(
'id' => 'opt-text-numeric',
'type' => 'text',
'title' => __( '文本选项-数字验证', 'redux-framework-demo' ),
'subtitle' => __( '这必须是数字', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'validate' => 'numeric',
'default' => '0',
),
array(
'id' => 'opt-text-comma-numeric',
'type' => 'text',
'title' => __( '文本选项-逗号数字验证', 'redux-framework-demo' ),
'subtitle' => __( '这必须是以逗号分隔的数值字符串', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'validate' => 'comma_numeric',
'default' => '0',
),
array(
'id' => 'opt-text-no-special-chars',
'type' => 'text',
'title' => __( '文本选项-元特殊字符验证', 'redux-framework-demo' ),
'subtitle' => __( '这必须是一个字母数字', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'validate' => 'no_special_chars',
'default' => '0'
),
array(
'id' => 'opt-text-str_replace',
'type' => 'text',
'title' => __( '文本选项-字符替换验证', 'redux-framework-demo' ),
'subtitle' => __( '你决定吧', 'redux-framework-demo' ),
'desc' => __( '此字段的默认值由过滤器挂钩更改', 'redux-framework-demo' ),
'validate' => 'str_replace',
'str' => array(
'search' => ' ',
'replacement' => 'thisisaspace'
),
'default' => '这是默认的'
),
array(
'id' => 'opt-text-preg_replace',
'type' => 'text',
'title' => __( '文本选项-正则替换验证', 'redux-framework-demo' ),
'subtitle' => __( '你决定吧', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'validate' => 'preg_replace',
'preg' => array(
'pattern' => '/[^a-zA-Z_ -]/s',
'replacement' => 'no numbers'
),
'default' => '0'
),
array(
'id' => 'opt-text-custom_validate',
'type' => 'text',
'title' => __( '文本选项-自定义回调验证', 'redux-framework-demo' ),
'subtitle' => __( '你决定吧', 'redux-framework-demo' ),
'desc' => __( 'Enter 1 and click Save Changes for an error message, or enter 2 and click Save Changes for a warning message.', 'redux-framework-demo' ),
'validate_callback' => 'redux_validate_callback_function',
'default' => '0'
),
//array(
// 'id' => 'opt-text-custom_validate-class',
// 'type' => 'text',
// 'title' => __( 'Text Option - Custom Callback Validated - Class', 'redux-framework-demo' ),
// 'subtitle' => __( 'You decide.', 'redux-framework-demo' ),
// 'desc' => __( '本设置项描述', 'redux-framework-demo' ),
// 'validate_callback' => array( 'Class_Name', 'validate_callback_function' ),
// // You can pass the current class
// // Or pass the class name and method
// //'validate_callback' => array(
// // 'Redux_Framework_sample_config',
// // 'validate_callback_function'
// //),
// 'default' => '0'
//),
array(
'id' => 'opt-textarea-no-html',
'type' => 'textarea',
'title' => __( '文本域选项-无HTML验证', 'redux-framework-demo' ),
'subtitle' => __( '去除所有的HTML标签', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'validate' => 'no_html',
'default' => 'No HTML is allowed in here.'
),
array(
'id' => 'opt-textarea-html',
'type' => 'textarea',
'title' => __( '文本域-HTML标签验证', 'redux-framework-demo' ),
'subtitle' => __( '可接受HTML标签', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'validate' => 'html', //see http://codex.wordpress.org/Function_Reference/wp_kses_post
'default' => 'HTML is allowed in here.'
),
array(
'id' => 'opt-textarea-some-html',
'type' => 'textarea',
'title' => __( '文本域-自定义HTML验证', 'redux-framework-demo' ),
'subtitle' => __( '接受自定义HTML标签', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'validate' => 'html_custom',
'default' => '

Some HTML is allowed in here.

',
'allowed_html' => array(
'a' => array(
'href' => array(),
'title' => array()
),
'br' => array(),
'em' => array(),
'strong' => array()
) //see http://codex.wordpress.org/Function_Reference/wp_kses
),
array(
'id' => 'opt-textarea-js',
'type' => 'textarea',
'title' => __( '文本域-JS代码验证', 'redux-framework-demo' ),
'subtitle' => __( '过滤JS代码', 'redux-framework-demo' ),
'desc' => __( '本设置项描述', 'redux-framework-demo' ),
'validate' => 'js'
),
)
) );

// -> START Required
Redux::setSection( $opt_name, array(
'title' => __( 'Field Required / Linking', 'redux-framework-demo' ),
'id' => 'required',
'desc' => __( '文档支持请参考: ', 'redux-framework-demo' ) . 'docs.reduxframework.com/core/the-basics/required/',
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-required-basic',
'type' => 'switch',
'title' => '基本要求示例',
'subtitle' => '单击“开启”按钮看看会出现什么',
'default' => false
),
array(
'id' => 'opt-required-basic-text',
'type' => 'text',
'title' => '基本文本字段',
'subtitle' => '只有当上面的开关被设置为“开启”且使用“require”参数时,才会显示此文本字段。',
'required' => array( 'opt-required-basic', '=', true )
),
array(
'id' => 'opt-required-divide-1',
'type' => 'divide'
),
array(
'id' => 'opt-required-nested',
'type' => 'switch',
'title' => '嵌套所需的示例',
'subtitle' => '单击"开启"按钮可以看到另一组选项出现',
'default' => false
),
array(
'id' => 'opt-required-nested-buttonset',
'type' => 'button_set',
'title' => '多个嵌套所需的示例',
'subtitle' => '单击任何按钮,根据它们的“require”语句显示不同的字段',
'options' => array(
'button-text' => 'Show Text Field',
'button-textarea' => 'Show Textarea Field',
'button-editor' => 'Show WP Editor',
'button-ace' => 'Show ACE Editor'
),
'required' => array( 'opt-required-nested', '=', true ),
'default' => 'button-text'
),
array(
'id' => 'opt-required-nested-text',
'type' => 'text',
'title' => '嵌套文本字段',
'required' => array( 'opt-required-nested-buttonset', '=', 'button-text' )
),
array(
'id' => 'opt-required-nested-textarea',
'type' => 'textarea',
'title' => '嵌套文本域字段',
'required' => array( 'opt-required-nested-buttonset', '=', 'button-textarea' )
),
array(
'id' => 'opt-required-nested-editor',
'type' => 'editor',
'title' => '嵌套编辑器字段',
'required' => array( 'opt-required-nested-buttonset', '=', 'button-editor' )
),
array(
'id' => 'opt-required-nested-ace',
'type' => 'ace_editor',
'title' => '嵌套ACE编辑器字段',
'required' => array( 'opt-required-nested-buttonset', '=', 'button-ace' )
),
array(
'id' => 'opt-required-divide-2',
'type' => 'divide'
),
array(
'id' => 'opt-required-select',
'type' => 'select',
'title' => '选择所需的示例',
'subtitle' => '选项一个不同的选项以显示其值,可显示多个',
'options' => array(
'no-sidebar' => 'No Sidebars',
'left-sidebar' => 'Left Sidebar',
'right-sidebar' => 'Right Sidebar',
'both-sidebars' => 'Both Sidebars'
),
'default' => 'no-sidebar',
'select2' => array( 'allowClear' => false )
),
array(
'id' => 'opt-required-select-left-sidebar',
'type' => 'select',
'title' => '选择左侧边框',
'data' => 'sidebars',
'default' => '',
'required' => array( 'opt-required-select', '=', array( 'left-sidebar', 'both-sidebars' ) )
),
array(
'id' => 'opt-required-select-right-sidebar',
'type' => 'select',
'title' => '选择右侧边框',
'data' => 'sidebars',
'default' => '',
'required' => array( 'opt-required-select', '=', array( 'right-sidebar', 'both-sidebars' ) )
),
)
) );

Redux::setSection( $opt_name, array(
'title' => __( 'WPML整合', 'redux-framework-demo' ),
'desc' => __( '这些字段可以由WPML(WordPress Multi-Language)完全翻译,这是你实现的一个例子,请查看有关 WPML Implementation的文档 ', 'redux-framework-demo' ),
'subsection' => true,
// 'submenu' => false, // Setting submenu to false on a given section will hide it from the WordPress sidebar menu!
'fields' => array(
array(
'id' => 'wpml-text',
'type' => 'textarea',
'title' => __( 'WPML文本', 'redux-framework-demo' ),
'desc' => __( '此字符串可以通过WPML进行翻译', 'redux-framework-demo' ),
),
array(
'id' => 'wpml-multicheck',
'type' => 'checkbox',
'title' => __( 'WPML多选框', 'redux-framework-demo' ),
'desc' => __( '您可以通过关键字逐个翻译这些值', 'redux-framework-demo' ),
//Must provide key => value pairs for multi checkbox options
'options' => array(
'1' => 'Option 1',
'2' => 'Option 2',
'3' => 'Option 3'
),
),
)
) );

Redux::setSection( $opt_name, array(
'icon' => 'el el-list-alt',
'title' => __( '仅“自定义”可见', 'redux-framework-demo' ),
'desc' => __( '

此部分仅在“自定义”中可见

', 'redux-framework-demo' ),
'customizer_only' => true,
'fields' => array(
array(
'id' => 'opt-customizer-only',
'type' => 'select',
'title' => __( '自定义选项', 'redux-framework-demo' ),
'subtitle' => __( '子标题:自定义不可见', 'redux-framework-demo' ),
'desc' => __( '描述:自定义不可见', 'redux-framework-demo' ),
'customizer_only' => true,
//Must provide key => value pairs for select options
'options' => array(
'1' => 'Opt 1',
'2' => 'Opt 2',
'3' => 'Opt 3'
),
'default' => '2'
),
)
) );

if ( file_exists( dirname( __FILE__ ) . '/../README.md' ) ) {
$section = array(
'icon' => 'el el-list-alt',
'title' => __( '文档', 'redux-framework-demo' ),
'fields' => array(
array(
'id' => '17',
'type' => 'raw',
'markdown' => true,
'content_path' => dirname( __FILE__ ) . '/../README.md', // FULL PATH, not relative please
//'content' => 'Raw content here',
),
),
);
Redux::setSection( $opt_name, $section );
}
/*
* <--- END SECTIONS */ /* * * YOU MUST PREFIX THE FUNCTIONS BELOW AND ACTION FUNCTION CALLS OR ANY OTHER CONFIG MAY OVERRIDE YOUR CODE. * */ /* * * --> Action hook examples
*
*/

// If Redux is running as a plugin, this will remove the demo notice and links
//add_action( 'redux/loaded', 'remove_demo' );

// Function to test the compiler hook and demo CSS output.
// Above 10 is a priority, but 2 in necessary to include the dynamically generated CSS to be sent to the function.
//add_filter('redux/options/' . $opt_name . '/compiler', 'compiler_action', 10, 3);

// Change the arguments after they've been declared, but before the panel is created
//add_filter('redux/options/' . $opt_name . '/args', 'change_arguments' );

// Change the default value of a field after it's been set, but before it's been useds
//add_filter('redux/options/' . $opt_name . '/defaults', 'change_defaults' );

// Dynamically add a section. Can be also used to modify sections/fields
//add_filter('redux/options/' . $opt_name . '/sections', 'dynamic_section');

/**
* This is a test function that will let you see when the compiler hook occurs.
* It only runs if a field set with compiler=>true is changed.
* */
if ( ! function_exists( 'compiler_action' ) ) {
function compiler_action( $options, $css, $changed_values ) {
echo '

The compiler hook has run!

';
echo "

"; print_r( $changed_values ); // Values that have changed since the last save echo "

";
//print_r($options); //Option values
//print_r($css); // Compiler selector CSS values compiler => array( CSS SELECTORS )
}
}

/**
* Custom function for the callback validation referenced above
* */
if ( ! function_exists( 'redux_validate_callback_function' ) ) {
function redux_validate_callback_function( $field, $value, $existing_value ) {
$error = false;
$warning = false;

//do your validation
if ( $value == 1 ) {
$error = true;
$value = $existing_value;
} elseif ( $value == 2 ) {
$warning = true;
$value = $existing_value;
}

$return['value'] = $value;

if ( $error == true ) {
$field['msg'] = 'your custom error message';
$return['error'] = $field;
}

if ( $warning == true ) {
$field['msg'] = 'your custom warning message';
$return['warning'] = $field;
}

return $return;
}
}

/**
* Custom function for the callback referenced above
*/
if ( ! function_exists( 'redux_my_custom_field' ) ) {
function redux_my_custom_field( $field, $value ) {
print_r( $field );
echo '
';
print_r( $value );
}
}

/**
* Custom function for filtering the sections array. Good for child themes to override or add to the sections.
* Simply include this function in the child themes functions.php file.
* NOTE: the defined constants for URLs, and directories will NOT be available at this point in a child theme,
* so you must use get_template_directory_uri() if you want to use any of the built in icons
* */
if ( ! function_exists( 'dynamic_section' ) ) {
function dynamic_section( $sections ) {
//$sections = array();
$sections[] = array(
'title' => __( 'Section via hook', 'redux-framework-demo' ),
'desc' => __( '

This is a section created by adding a filter to the sections array. Can be used by child themes to add/remove sections from the options.

', 'redux-framework-demo' ),
'icon' => 'el el-paper-clip',
// Leave this as a blank section, no options just some intro text set above.
'fields' => array()
);

return $sections;
}
}

/**
* Filter hook for filtering the args. Good for child themes to override or add to the args array. Can also be used in other functions.
* */
if ( ! function_exists( 'change_arguments' ) ) {
function change_arguments( $args ) {
//$args['dev_mode'] = true;

return $args;
}
}

/**
* Filter hook for filtering the default value of any given field. Very useful in development mode.
* */
if ( ! function_exists( 'change_defaults' ) ) {
function change_defaults( $defaults ) {
$defaults['str_replace'] = 'Testing filter hook!';

return $defaults;
}
}

/**
* Removes the demo link and the notice of integrated demo from the redux-framework plugin
*/
if ( ! function_exists( 'remove_demo' ) ) {
function remove_demo() {
// Used to hide the demo mode link from the plugin page. Only used when Redux is a plugin.
if ( class_exists( 'ReduxFrameworkPlugin' ) ) {
remove_filter( 'plugin_row_meta', array(
ReduxFrameworkPlugin::instance(),
'plugin_metalinks'
), null, 2 );

// Used to hide the activation notice informing users of the demo panel. Only used when Redux is a plugin.
remove_action( 'admin_notices', array( ReduxFrameworkPlugin::instance(), 'admin_notices' ) );
}
}
}

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏

评论抢沙发