在用WordPress开发网站时,可能我们需要添加一些额外的设置选项到常规设置(后台 > 设置 > 常规)页面来满足我们的开发需求。这里有两个关键点。
实例1:
- 1、把自定义字段添加到WordPress系统常规设置页面这个位置。
- 2、字段的添加和主题页面的调用。
下面是一个简单的范例:
首先:直接添加到主题的 functions.php 即可:
/**
* WordPress 添加自定义项字段到常规设置页面
*/
$new_general_setting = new new_general_setting();
class new_general_setting {
function new_general_setting( ) {
add_filter( 'admin_init' , array( &$this , 'register_fields' ) );
}
function register_fields() {
register_setting( 'general', 'favorite_color', 'esc_attr' );
add_settings_field('fav_color', '<label for="favorite_color">'.__('颜色演示' ).'</label>' , array(&$this, 'fields_html') , 'general' );
}
function fields_html() {
$value = get_option( 'favorite_color', '' );
echo '<input type="text" id="favorite_color" name="favorite_color" value="' . $value . '" />';
}
}
解析:根据自己的需要修改 11、12、15、16 行的代码即可,这里只是简单的 input 表单,你也可以直接添加其他表单类型。
其次:页面调用
使用 get_option()函数即可调用选项字段的值,
比如上面的例子用 get_option( ‘favorite_color’ );
实例2:
许多WordPress主题都需要给用户提供一些设置选项,最常见的就是设置首页描述标签、页脚统计代码,如果仅仅只需要这么几个简单的设置项就专门制作一个主题后台,那有点大动干戈了,我们可以给WordPress默认的常规设置添加配置项。
先来看添加后的效果图:
从左侧的菜单可以看出目前位于WordPress默认的常规设置页面,添加的网站描述和统计代码配置项位于备案号和站点语言选项中间。
添加配置项代码如下:
//添加常规选项
function bzg_register_fields() {
register_setting( 'general', 'bzg_description' );
register_setting( 'general', 'bzg_code' );
add_settings_field( 'bzg_description', '<label for="bzg_description">网站描述</label>', 'bzg_fields_des', 'general' );
add_settings_field( 'bzg_code', '<label for="bzg_code">统计代码</label>', 'bzg_fields_code', 'general' );
}
function bzg_fields_des() {
$value = get_option( 'bzg_description', '' );
echo '<textarea name="bzg_description" id="bzg_description" class="large-text code" rows="3">' . $value . '</textarea>';
echo '<p class="description">显示在首页description描述标签中</p>';
}
function bzg_fields_code() {
$value = get_option( 'bzg_code', '' );
echo '<textarea name="bzg_code" id="bzg_code" class="large-text code" rows="3">' . $value . '</textarea>';
echo '<p class="description">网站统计代码、客服代码等可以放在这里,将在页脚输出</p>';
}
add_filter( 'admin_init' , 'bzg_register_fields' );
将以上代码粘贴到主题文件functions.php中即可。
你也可以修改以上代码来添加更多配置项,但是如果配置项比较多的话还是单独做一个主题后台吧!
调用方法:
使用get_option()函数即可获取配置项,例如:
<?php echo get_option('bzg_code'); ?>