老头目前在用 OptionsFramework,小巧,该有的设置功能基本上都有,使用方便,就是 UI 界面相对简陋。而 ReduxFramework 更漂亮,功能更强大。CodestarFramework 与 ReduxFramework 界面很像。
这里介绍一下 WordPress 简单整合/使用 ReduxFrameWork 主题设置框架。
ReduxFrameWork 主题设置框架 基本介绍
Redux is a simple, truly extensible options framework for WordPress themes and plugins.(Redux 是一个简单,真正可扩展的选项框架,适用于 WordPress 主题和插件,开源,免费。)
- ReduxFrameWork 官方网站:https://reduxframework.com(挂了)
- ReduxFrameWork 文档查询:https://docs.reduxframework.com/core(挂了)
- ReduxFrameWork Github 项目地址:https://github.com/ReduxFramework/redux-framework
如何使用 ReduxFrameWork?
如果使用过 OptionsFramework,ReduxFrameWork 使用起来不会太难。ReduxFrameWork 提供很丰富设置项类型,不过一般常用就复选框、文本框、编辑器、媒体上传……
WordPress 主题引入 ReduxFrameWork
方法:可从 Github 链接下载 ReduxFrameWork 完整源码并解压,然后在主题 functions.php 文件引用ReduxCore 文件夹里的 framework.php(框架核心文件) 以及引入 sample 文件夹里的 sample-config.php(配置文件),刷新 WordPress 后台就能看到 ReduxFrameWork 框架设置入口页面,再根据参考配置文件上的各种设置项数组书写规范来创建自己的设置项并在主题中使用即可。
若不嫌弃,可直接下载老头简单整合的版本(去除语言包、机翻了一部分英文、删了一点用不上的东西)。下载:redux-framework-3.6.18
下载完成解压,把 redux 文件夹上传至主题目录,然后使用下面主题 functions.php 文件添加代码引入即可:
if ( !class_exists( 'ReduxFramework' ) && file_exists( get_template_directory() . '/redux/framework.php' ) && file_exists( get_template_directory() . '/redux/config.php' ) ){
require_once get_template_directory().'/redux/framework.php';
require_once get_template_directory().'/redux/config.php';
}
ReduxFrameWork 添加个性化配置
老头简单整合的版本中 config.php 是配置文件,全局变量和相关参数以及各种设置类型均在这个配置文件配置!可参考配置文件里面设置类型个性化配置主题选项。
比如,增加了一个 基本设置 菜单,下面有一个 文本域 类型设置项来设置页脚信息:
// -> START 基础设置
Redux::setSection( $opt_name, array(
'title' => __( '基本设置', 'redux-framework' ),
'id' => 'basicset',
'desc' => __( '基本设置', 'redux-framework' ),
'customizer_width' => '400px',
'icon' => 'el el-home'
) );
Redux::setSection( $opt_name, array(
'title' => __( '页脚信息', 'redux-framework' ),
'id' => 'basicset-footer',
'desc' => '页脚信息设置',
'subsection' => true,
'fields' => array(
array(
'id' => 'basicset-footer-info',
'type' => 'textarea',
'title' => __( '页脚信息', 'redux-framework' ),
'subtitle' => __( '', 'redux-framework' ),
'desc' => __( '', 'redux-framework' ),
'default' => '10086',
)
)
) );
ReduxFrameWork 设置项调用
使用全局变量名引入,这个变量名可以在 config.php 参数配置数组找到/修改,老头整合版本全局变量是 $redux,调用方法:
<?php
global $redux;//在需要使用 Redux 框架全局变量的文件顶部引入一次即可
echo $redux['basicset-footer-info']; // 在需要的位置使用 echo 输出值或者给 if 之类使用
其实也可以简单封装一个函数来获取设置项参数:
if ( ! function_exists( 'redux_get_option' ) ) :
function redux_get_option( $option_id ) {
global $redux; //需与 $opt_name 或 global_variable 一致
if ( isset( $redux[$option_id] ) && !empty( $redux[$option_id] ) ) {
return $redux[$option_id];
}
return false;//默认返回 false
}
endif;
然后使用 redux_get_option( '设置项id' ) 来获取参数:
echo redux_get_option( 'basicset-footer-info' );
其实整个过程并不复杂:下载 Redux 文件 —— 在主题 functions.php 引入文件 —— 依样画葫芦创建设置项 —— 前端使用/输出……就是得花点时间。
你要写主题了?
@老张博客 不写,只会东拼西凑改~