一、wordpress CMS主题怎样添加后台设置页面?
一般来说,稍微好点的wordpressCMS主题都会有相关的后台设置页面,当然也有一些不太成熟的wordpress主题可能不带这个设置页面,这种情况是不多见的。如果是自己用的,那也没什么,如果是给客户用的,那就不太方便了,客户大多对代码是不精通的,他们不可能像你一样去修改代码的。所以,一个好的wordpress主题,后台设置是必不可少的。今天,就来介绍为wordpressCMS主题添加后台设置页面。

要为wordpress主题添加后台设置,我们要用到wordpress自带的菜单函数add_theme_page(),如下:
add_theme_page( $page_title, $menu_title, $capability, $menu_slug, $function);
参数解说:
$page_titile—–标签的内容
$menu_title—–显示在后台左边菜单的标题
$capability——访问这个页面需要的权限
$menu_slug—–别名,需要独一无二哦
$function——–执行的函数
用add_theme_page()添加页面后,会在后台的 外观 里的二级菜单中出现,如上图中的“Ssmay主题设置”。不多说,下面以一个小小的实例来解说这个函数——怎样给wordpress主题添加后台主题设置。
在wordpress主题的functions.php文件中添加如下代码:
function Themes_Set(){
add_theme_page( ‘title标题’, ‘主题设置’, ‘administrator’, ‘ashu_slug’,’ssmay_set’);
}function ssmay_set(){
echo ‘<h1>Ssmay主题设置</h1>’;
//这里是设置选项内容
}
add_action(‘admin_menu’, ‘Themes_Set’);
上面这段代码有2个函数, Themes_Set()是创建菜单,ssmay_set()是设置页面内容。通过上面这段代码,就在后台的“外观”菜单下新建了一个“主题设置”二级菜单,这个二级菜单页面内容是”Ssmay主题设置”,在这个简单案例中,我们没有添加主题相关的设置选项,你可以在“//这里是设置选项内容”下面添加设置选项内容,就像时美网主题ssmay主题的后台设置那样。上面这段代码效果展示:

二、wordpress主题后台顶级菜单add_menu_page与子菜单add_submenu_page
本章主要介绍wordpress顶级菜单函数add_menu_page与子菜单函数add_submenu_page的组合使用。
wordpress顶级菜单函数add_menu_page()
add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );
//page_title页面title标签信息
//$menu_title 菜单标题
//capability 权限
//menu_slug 别名
//function 执行函数
//icon_url 菜单图标url地址
//position 此菜单项在菜单中的位置,用数字来表示
wordpress子菜单函数add_submenu_page()
add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function );
//parent_slug-父级菜单项的别名
//page_title–页面的title信息
//menu_title-菜单标题
//capability-权限
//menu_slug-别名
//function-执行的函数
以上,对wordpress的这2个函数做了简单介绍,再来看一个它们的组合安例,代码如下:
//以下是添加顶级菜单项代码
add_action(‘admin_menu’, ‘wanlimm_function’);
function wanlimm_function(){
add_menu_page( ‘title标题’, ‘顶级菜单’, ‘edit_themes’, ‘ashu_slug’,’ssmay_function’,”,6);
}
function ssmay_function(){
echo ‘<h1>这是设置页面</h1>’;
}//以下是添加子菜单项代码
add_action(‘admin_menu’, ‘my_submenu_page’);
function my_submenu_page() {
//顶级菜单的slug是ashu_slug
add_submenu_page( ‘ashu_slug’, ‘子菜单’, ‘子菜单’, ‘edit_themes’, ‘ashu-submenu-page’, ‘my_submenu_page_display’ );
}
function my_submenu_page_display() {
echo ‘<h3>子菜单项的输出代码</h3>’;
}
上面的代码,在wordpress主题后台创建了一个名为“顶级菜单”的顶级菜单,在这个顶级菜单下再创建了一个名为“子菜单”的子菜单,效果如下图:

这里只是针对wordpress主题后台顶级菜单函数add_menu_page与子菜单函数add_submenu_page的解说,所以,没有为创建好的菜单里添加任何内容选项,你可以更加深入一点,在这个顶级菜单和子菜单里添加想要添加的内容,还记得我们前面文章中介绍过的wordpress自定义文章类型吗?它们就用到了这个顶级菜单和子菜单函数,可以参照着做一些相似的功能。
三、wordpress主题后台添加菜单相关解说
四、wordpress CMS主题设置页面如何添加设置选项和数据保存?
update_option()用于更新数据表中存在的选项值。该函数可取代add_option,但不及add_option灵活。update_option会检查并判断选项是否已经存在。如果不存在,用add_option (’option_name’, ‘option_value’)添加选项。除非用户需要指定add_option的选项参数,否则update_option()是一个可同时添加和更新选项的两用函数。
注意:wp_load_alloptions将要加载(或不加载)某个选项时,update_option()无法更新。在这种情况下,应在使用update_option()函数后使用delete_option。
函数用法
<?php update_option( $option_name, $newvalue ); ?>
函数参数
$option_name
(字符串)(必需)需要更新的选项名称。在Option Reference中列出了可以升级的有效默认选项。
默认值:None
$newvalue
(混合)(必需)当前选项名称的新值。新值可以是一个字符串、数组、对象或序列化的值。
默认值:None
函数实例
将选项名称myhack_extraction_length的值更新为255。若该选项不存在,使用add_option函数,将autoload的值设为no。
<?php
$option_name = 'myhack_extraction_length' ;
$newvalue = '255' ;
if ( get_option($option_name) ) {
update_option($option_name, $newvalue);
} else {
$deprecated=' ';
$autoload='no';
add_option($option_name, $newvalue, $deprecated, $autoload);
}
?>
get_option函数用于获取后台设置中设置的值,若是没有找到返回false。
用法
- <?php echo get_option( $option, $default ); ?>
$option:(string) (必须) 查询选项的名称
$default:(mixed) (可选) 当数据库中不存在时设置该选项时默认的返回值: false
常用参数
- ‘admin_email’ – 管理员的E–mail地址。
- ‘blogname’ – 网站title标题。
- ‘blogdescription’ – 网站描述.
- ‘blog_charset’ – 网站编码一般UTF–8。
- ‘date_format’ – 日期格式。
- ‘default_category’ – 文章默认分类。
- ‘home’ – 网站地址。
- ‘siteurl’ – wordpress的web地址。
- //注: 与函数 get_bloginfo(‘siteurl’)不同,
- //get_bloginfo(‘siteurl’)返回当前站地址, 但是这个选项等同于get_bloginfo(‘wpurl’);
- ‘template’ -当前主题名称
- ‘start_of_week’ -一星期开始设置
- ‘upload_path’ – 上传默认目录.
- ‘posts_per_page’ – 文章分页每页显示的数量.
- ‘posts_per_rss’ – RSS聚合显示的最新文章数量
- 默认: None
进阶:
用类来添加wordpressCMS主题设置页面(1):思路简明
在前面的章节中,我们详细介绍了如何为wordpressCMS主题添加主题设置页面,这样会为你的主题添加更多的功能。但是,如果要添加新的表单选项,我们要手动添加或修改好几个地方的代码,对于wordpress主题设计者来说,有点麻烦非常不方便。这时,我们就想到了类的好处,我们把wordpress主题设置页面框架封装在一个类文件中,然后,设置选项的配置在类的外面配置,想添加什么选项,只需要选择类型、id、默认值即可,这样不仅节省了大量的代码,也方便了设计者的灵活使用。
总体恩路如下:
1、设计类文件。类的结构如下:
class Wanlimm_Class{
var $options;
//…类的属性//通过参数实例化类 ,是类的构造函数
function __construct($options,$pageinfo){
//通过page_info参数信息执行创建设置页面的函数
//执行加载js和css的函数
}
function add_themeset_menu(){ //创建设置页面函数 即创建后台菜单
//通过optinos执行页面输出函数
}
function Add_JS(){
//加载js css函数
}
function display(){ //页面输出函数
//分析options,执行不同表单输出代码
}
function save_option(){
//保存更新数据函数
}//各种类型表单输出函数
function text(){}
function textarea(){}
function upload(){}
//……等等}
2、添加选项设置文件。也就是实例化类的文件。
首先,添加配置设置页面信息的代码。
$pageinfo = array(‘full_name’ => ‘网站主题设置’, ‘optionname’=>’ashu’, ‘child’=>true, ‘filename’ => basename(__FILE__));
然后,以数组形式配置表单选项代码,如下:
$options[] = array(
“name”=>”选项一”, //选项标题
“id”=>”option1”, //选项id
“size”=>”60”,
“desc”=>”描述文字”,
“type”=>”text” //表单类型
);$options[] = array(
“name”=>”选项二”,
“id”=>”option2”,
“desc”=>”描述文字”,
“type”=>”textarea”
);
然后,实例化类文件,
$options_page = new Wanlimm_Class($options, $pageinfo);
通过类来创建wordpress主题设置页面就是这样的一个思路,这样就大大提高了代码的重复使用,减轻了wordpress主题设计者的工作量,同时还提高了代码的使用效率。
wordpressCMS主题添加一个设置页面的类文件,有了这个类文件,我们就可以非常方便地为设置页面添加设置选项了。下面,我们就按照上章介绍的类的结构框架来设计这个类。
第一步:添加类的属性。
这里我们为类添加4个属性,这4个属性在接下来的代码中会用到。代码如下:
//类的属性
var $options;
var $pageinfo;
var $database_options;
var $saved_optionname;
第二步:添加类的构造函数。
每个PHP类都会有一个构造函数,即使我们不创建构造函数,类也会有一个默认的构造函数,熟悉PHP的都会知道。这里,我们要为类创建一个新的构造函数,代码如下:
//类的构建函数
function __construct($options, $pageinfo) {
$this->options = $options;
$this->pageinfo = $pageinfo;
$this->make_data_available(); //准备设置选项数据add_action( ‘admin_menu’, array(&$this, ‘add_themeset_menu’) );
if( isset($_GET[‘page’]) && ($_GET[‘page’] == $this->pageinfo[‘filename’]) ) {
//加载css js
add_action(‘admin_init’, array(&$this, ‘Add_JS’));
}
}
通过上面这个构造函数,我们为wordpress主题后台添加了一个菜单,菜单函数名是add_themeset_menu,这个函数会在下面创建。并且还调用了一个 Add_JS 函数,这个也会在下面创建。
第三步:添加设置页面菜单函数。
在wordpress主题后台添加菜单有2种,一种是添加后台顶级菜单,一种是添加后台顶级菜单的子菜单。所以,下面的代码中,我们添加了一个判断,如是不是子菜单,就添加顶菜单,否则就添加子菜单到顶级菜单“外观”下。代码如下:
//创建菜单项函数
function add_themeset_menu() {
//添加顶级菜单项
$top_level = “主题设置”;
if(!$this->pageinfo[‘child’]) { //如果child=false ,就添加顶级菜单
add_menu_page($top_level, $top_level, ‘edit_themes’, $this->pageinfo[‘filename’], array(&$this, ‘initialize’));
define(‘TOP_LEVEL_BASEAME’, $this->pageinfo[‘filename’]);
}else{ // 否则就添加外观下的 子菜单
//add_submenu_page(TOP_LEVEL_BASEAME, $this->pageinfo[‘full_name’], $this->pageinfo[‘full_name’], ‘edit_themes’, $this->pageinfo[‘filename’], array(&$this, ‘initialize’));
add_theme_page( $this->pageinfo[‘full_name’], $this->pageinfo[‘full_name’], ‘administrator’, $this->pageinfo[‘filename’],array(&$this, ‘initialize’));}
}
第四步:添加CSS和JS调用函数。
想要让wordpress后台的设置页面显示得好看点,我们还要为设置页面添加CSS样式,如果想在设置页面添加图片上传选项,我们还要为添加相应的JS代码,这个在前面介绍过,不多说。代码如下:
function Add_JS() { //加载图片上传等的js 以及页面CSS路径
wp_enqueue_script(‘wanlimm_options_js’, TEMJS_URI.’wanlimm_options.js’);
wp_enqueue_style(‘wanlimm_options_css’, TEMJS_URI.’wanlimm_options.css’);
wp_enqueue_script(‘thickbox’);
wp_enqueue_style(‘thickbox’);
}
第五步:添加选项组函数。
为了方便后面的设置选项的添加,也为了前台的调用数据,我们在这里添加一个选项组函数,。代码如下:
function make_data_available() {
global $wanlimm_option; //申明全局变量foreach ($this->options as $option) {
if( isset($option[‘std’]) ) {
$wanlimm_option_std[$this->pageinfo[‘optionname’]][$option[‘id’]] = $option[‘std’];
}
}
//选项组名称
$this->saved_optionname = ‘wanlimm_’.$this->pageinfo[‘optionname’];
$wanlimm_option[$this->pageinfo[‘optionname’]] = get_option($this->saved_optionname);//合并数组
$wanlimm_option[$this->pageinfo[‘optionname’]] = array_merge((array)$wanlimm_option_std[$this->pageinfo[‘optionname’]], (array)$wanlimm_option[$this->pageinfo[‘optionname’]]);//html实体转换
$wanlimm_option[$this->pageinfo[‘optionname’]] = $this->htmlspecialchars_deep($wanlimm_option[$this->pageinfo[‘optionname’]]);}
//使用递归将预定义html实体转换为字符
function htmlspecialchars_deep($mixed, $quote_style = ENT_QUOTES, $charset = ‘UTF-8’) {
if (is_array($mixed) || is_object($mixed)) {
foreach($mixed as $key => $value) {
$mixed[$key] = $this->htmlspecialchars_deep($value, $quote_style, $charset);
}
}
elseif (is_string($mixed)) {
$mixed = htmlspecialchars_decode($mixed, $quote_style);
}
return $mixed;
}
第六步:添加初始化处理函数。
function initialize() {
$this->get_save_options();
$this->display();
}
这个函数是数据处理函数,它调用了2个函数get_save_options()和display(),这2个函数我们在下面会创建。
第七步:添加表单显示函数。
//显示表单项函数
function display() {
$saveoption = false;
echo ‘<div class=”wrap”>’;
echo ‘<div class=”icon32″ id=”icon-options-general”><br/></div>’;
echo ‘<h2>’.$this->pageinfo[‘full_name’].'</h2>’;
echo ‘<form method=”post” action=””>’;//根据选项类型执行对应函数
foreach ($this->options as $option) {
if (method_exists($this, $option[‘type’])) {
$this->$option[‘type’]($option);
$saveoption = true;
}
}
if($saveoption) {
echo ‘<p class=”submit”>’;
echo ‘<input type=”hidden” value=”1″ name=”save_my_options”/>’;
echo ‘<input type=”submit” name=”Submit” class=”button-primary autowidth” value=”保存设置” /></p>’;
}
echo ‘</form></div>’;
}
上面的代码为wordpress主题设置页面添加显示,这里没有一个一个地添加表单选项同,而是根据选项类型执行对应的选项表单函数,这些表单函数在一面会一一创建。并且添加了设置页面的html标签。这样我们CSS就可以根据这些标签来设置样式。
第八步:添加更新处理数据函数。
//更新数据
function get_save_options() {
$options = $newoptions = get_option($this->saved_optionname);
if ( isset( $_POST[‘save_my_options’] ) ) {
echo ‘<div class=”updated fade” id=”message” style=””><p><strong>Settings saved.</strong></p></div>’;
$opion_count = 0;
foreach ($_POST as $key => $value) {
if( preg_match(“/^(numbers_)/”, $key, $result) ){
$numbers = explode( ‘,’, $value );
$newoptions[$key] = $numbers;
}elseif( preg_match(“/^(tinymce_)/”, $key, $result) ){
$value = stripslashes($value);
$newoptions[$key] = $value;
}elseif( preg_match(“/^(checkbox_)/”, $key, $result) ){
$newoptions[$key] = $value;
}else{
$value = stripslashes($value);
$newoptions[$key] = htmlspecialchars($value, ENT_QUOTES,”UTF-8″);
}
}
}if ( $options != $newoptions ) {
$options = $newoptions;
update_option($this->saved_optionname, $options);
}if($options) {
foreach ($options as $key => $value) {
$options[$key] = empty($options[$key]) ? false : $options[$key];
}
}$this->database_options = $options;
}
第九步:添加表格标签。
//开头
function open($values) {
if(!isset($values[‘desc’])) $values[‘desc’] = “”;echo ‘<table class=”widefat”>’;
echo ‘<thead><tr><th colspan=”2″>’.$values[‘desc’].’ </th></tr></thead>’;
}//结尾
function close($values) {
echo ‘<tfoot><tr><th> </th><th> </th></tr></tfoot></table>’;
}
添加表格,是为了更好的规范化表单显示,不过,也可以不添加表格。可以通过CSS来设置显示样式,这里是为了方便,就直接用了表格。
第十步:添加表单选项函数。
在第七步的表单显示函数中我们设置了根据选项类来调用相应的表单选项函数,在这里我们就来创建这些表单选项函数,这里我们将创建文本框、文本域、单选框、复选框、图片上传等经常用到的表单选项,代码如下:
//文本域/
function textarea($values) {
if(isset($this->database_options[$values[‘id’]]))
$values[‘std’] = $this->database_options[$values[‘id’]];
echo ‘<tr valign=”top” >’;
echo ‘<th scope=”row” width=”200px”>’.$values[‘name’].'</th>’;
echo ‘<td>’.$values[‘desc’].'<br/>’;
echo ‘<textarea name=”‘.$values[‘id’].'” cols=”60″ rows=”7″ id=”‘.$values[‘id’].'” style=”width: 80%; font-size: 12px;” class=”code”>’;
echo $values[‘std’].'</textarea><br/>’;
echo ‘<br/></td>’;
echo ‘</tr>’;
}//文本框/
function text($values) {
if(isset($this->database_options[$values[‘id’]])) $values[‘std’] = $this->database_options[$values[‘id’]];echo ‘<tr valign=”top” >’;
echo ‘<th scope=”row” width=”200px”>’.$values[‘name’].'</th>’;
echo ‘<td>’.$values[‘desc’].'<br/>’;
echo ‘<input type=”text” size=”‘.$values[‘size’].'” value=”‘.$values[‘std’].'” id=”‘.$values[‘id’].'” name=”‘.$values[‘id’].'”/>’;
echo ‘<br/><br/></td>’;
echo ‘</tr>’;
}///复选框/
function checkbox($values) {
if(isset($this->database_options[$values[‘id’]])) $values[‘std’] = $this->database_options[$values[‘id’]];
echo ‘<tr valign=”top”>’;
echo ‘<th scope=”row” width=”200px”>’.$values[‘name’].'</th>’;
echo ‘<td>’.$values[‘desc’].'<br/>’;
foreach( $values[‘buttons’] as $key=>$value ) {
$checked =””;
if( is_array($values[‘std’]) && in_array($key,$values[‘std’])) {
$checked = ‘checked = “checked”‘;
}
echo ‘<input ‘.$checked.’ type=”checkbox” class=”kcheck” value=”‘.$key.'” name=”‘.$values[‘id’].'[]”/>’.$value;
}
echo ‘<label for=”‘.$values[‘id’].'”>’.$values[‘desc’].'</label><br/>’;
echo ‘<br/></td>’;
echo ‘</tr>’;
}//单选框/
function radio($values) {
if(isset($this->database_options[$values[‘id’]])) $values[‘std’] = $this->database_options[$values[‘id’]];
echo ‘<tr valign=”top” >’;
echo ‘<th scope=”row” width=”200px”>’.$values[‘name’].'</th>’;
echo ‘<td>’.$values[‘desc’].'<br/>’;
foreach($values[‘buttons’] as $key=>$value) {
$checked =””;
if(isset($values[‘std’]) && ($values[‘std’] == $key)) {
$checked = ‘checked = “checked”‘;
}
echo ‘<p><input ‘.$checked.’ type=”radio” class=”kcheck” value=”‘.$key.'” name=”‘.$values[‘id’].'”/>’;
echo ‘<label for=”‘.$values[‘id’].'”>’.$value.'</label></p>’;
}
echo ‘<br/></td>’;
echo ‘</tr>’;
}//上传
function upload($values) {
$prevImg = ”;
if(isset($this->database_options[$values[‘id’]])) $values[‘std’] = $this->database_options[$values[‘id’]];
if($values[‘std’] != ”){$prevImg = ‘<img src=’.$values[‘std’].’ alt=”” />’;}
echo ‘<tr valign=”top” >’;
echo ‘<th scope=”row” width=”200px”>’.$values[‘name’].'</th>’;
echo ‘<td>’;
echo ‘<div class=”preview_pic_optionspage” id=”‘.$values[‘id’].’_div”>’.$prevImg.'</div>’;
echo $values[‘desc’].'<br/>’;
echo ‘<input type=”text” size=”60″ value=”‘.$values[‘std’].'” name=”‘.$values[‘id’].'” class=”upload_pic_input” />’;
echo ‘ <a onclick=”return false;” title=”” class=”k_hijack button thickbox” id=”‘.$values[‘id’].'” href=”media-upload.php?type=image&hijack_target=’.$values[‘id’].’&TB_iframe=true”>Insert Image</a>’;
echo ‘<br/><br/></td>’;
echo ‘</tr>’;
}
好了,到这里,我们就为wordpress主题设置页面就完整地添加了一个类文件。这里,我们只是创建了类,但是后台仍没有添加任何东西。我们只有调用了这个类,才有所作为。
我们先在wordpress主题文件夹下创建一个配置页面文件:theme-option.php 。
第一步:引用class-theme.php类文件。
这一点很重要,在wordpress主题的functions.php文件中引用class-theme.php这个类文件,代码如下:
include(‘class-theme.php’);
第二步:引用theme-option.php文件。
include(“theme-option.php’);
这个theme-option.php就是我们用来实例化类的文件,我们要在这个文件中添加我们想在wordpress主题设置页面显示的内容。
第三步:给theme-option.php添加内容。
在类中,我们设置了文本框、文本域、单选框、复选框、图片上传这5种表单类型,所以,我们在theme-option.php配置文件中可以添加这5种表单元素,而且同一个表单选项可以重复添加,重复添加时只需要把id设置成不同的就可以了。示例代码如下:
<?php
$pageinfo = array(‘full_name’ => ‘网站主题设置’, ‘optionname’=>’wanlimm’, ‘child’=>true, ‘filename’ => basename(__FILE__));
$options = array();
$options[] = array( “type” => “open”);
$options[] = array(
“name”=>”文本框”,
“id”=>”_wanlimm_text_1”,
“std”=>”文本输入框”,
“desc”=>”高时银博客版权所有”,
“size”=>”60”,
“type”=>”text”
);$options[] = array(
“name”=>”文本框”,
“id”=>”_wanlimm_text_2”,
“std”=>”文本输入框”,
“desc”=>”高时银博客版权所有”,
“size”=>”60”,
“type”=>”text”
);$options[] = array(
“name”=>”文本域”,
“id”=>”_wanlimm_textarea”,
“std”=>”文本域”,
“desc”=>”高时银博客版权所有”,
“size”=>”60”,
“type”=>”textarea”
);$options[] = array(
“name” => “图片上传”,
“desc” => “请上传一个图片或填写一个图片地址”,
“std”=>””,
“id” => “_wanlimm_logo_1”,
“type” => “upload”);$options[] = array(
“name” => “图片上传”,
“desc” => “请上传一个图片或填写一个图片地址”,
“std”=>””,
“id” => “_wanlimm_logo_2”,
“type” => “upload”);$options[] = array( “name” => “单选框”,
“desc” => “请选择”,
“id” => “_wanlimm_radio”,
“type” => “radio”,
“buttons” => array(‘Yes’,’No’),
“std” => 1);$options[] = array( “name” => “复选框”,
“desc” => “请选择”,
“id” => “checkbox_wanlimm”, //id必须以checkbox_开头
“std” => 1,
“buttons” => array(‘手机’,’电脑’,’平板’,’MP4′),
“type” => “checkbox”);
$options[] = array( “type” => “close”);$options_page = new Wanlimm_Class($options, $pageinfo);
?>
在上面的代码中,我们可以看到,我们添加了2个文本框和2个图片上传,但是它们的ID不一样,这样就可以全部有效。在前台调用这些表单元素的值时,我们就要用到这些元素的ID,通过不同的ID来调用不同的元素值——也就是我们在后台添加的选项值。
到这里,我们的wordpress主题设置页面就正式创建成功了。效果如下图:

也许有人要问了,这样通过类做wordpress主题设置页面比前直接创建要麻烦,呵呵,你说得不能说不对,在创建类的时候,确实比前面创建wordpress主题设置页面的方法要麻烦一点,但是,你要知道,主题的设置页面里不只有这几个选项,可能会有几十个这样的表单选项,一些比较复杂的CMS主题,可能有上百个表单选项,如果用前面的方法,你想想看,我们的代码要写多少呢?比如文本框要20个,你用前面的方法,要写20个文本框代码,要写20个文本框数据处理代码,这样多麻烦呀。而通过类,我们就可以轻松地如本文中那样,简单地通过不同的ID来添加多个表单选项。
我们通过类为wordpressCMS主题添加了一个主题设置页面,在设置页面中,我们添加了常用的表单选项,这样一来,在功能上丰富了wordpressCMS主题。后台做得再好,如果前台没有调用,那都是白搭,比如高时银博客开发的ssmay主题,前台的展示都是通过后台来设置的。那么,wordpress主题的前台如何调用后台设置页面的设置选项的值呢?这就是我们今天要介绍的东东了。
我们在设计这个类文件时,我们创建了一个全局变量 $wanlimm_option ,这个全局变量是wordpress设置页面表单选项数组,我们可以通过它来调用我们在wordpress后台的设置选项的值。下面,我们来演示一下这个过程。
首先,我们在调用后台设置数据前,我们要先调用这个全局变量,代码如下:
global $wanlimm_option;
调用全局变量的这句代码最好是放在wordpress主题的header.php文件中。这样做的好处是,在wordpress网站打开的任何一个页面,都可以使用到这个全局变量,而不必每调用数据一次就要添加一次。
然后,在需要调用数据的地方使用这个全局变量来调用后台设置的数据,代码调用模式如下:
$wanlimm_option[‘选项组名’][‘选项ID’].”
这里,我做一个简单的案例,大家一看就知道了,我们在主题的single.php文件添加如下代码:
echo $wanlimm_option[‘wanlimm’][‘_ashu_text’].”<br/>”;
echo “<br/>”.$wanlimm_option[‘wanlimm’][‘_ashu_textarea’].”<br/>”;
echo “<br/><img src='”.$wanlimm_option[‘wanlimm’][‘_ashu_logo’].”‘ width=’150′ heigt=’auto’ >”;
这段代码,选项组名为“ wanlimm”,选项ID分别为“_ashu_text”、“_ashu_textarea”、“_ashu_logo”,根据我们前面的wordpress配置文件代码我们知道:一个是文本框、第二个是文本域、第三个是图片上传。我们在后台的wordpress主题设置页面添加这3个数据,文本框中输入“高时银博客版权所有”,文本域中输入“文本域传一个图片或填写一个图片地址”,再上传一张“图片”,保存后,我们就可以在前台看到这些设置的数据,效果如下图:

这只是一个简单的案例,大家可以根据自己的需要做相应的调用,如:单选框、复选框等,这里就不多介绍了,用法跟上面介绍的一样,自己可以多研究一下。好了,关于wordpress主题后台设置数据的前台调用就介绍到这里。
怎样通过wordpress主题给WP后台添加顶级菜单?
在开发wordpress主题时,我们有时必须要给wordpress后台添加一些必要的功能,比如:给wordpress后台添加左侧的顶级菜单。什么是顶级菜单?就是打开wordpress网站后台就能在左侧看到的导航菜单,不需要点击就可以看到的(如下图中,标红的是二级菜单,未标红的是顶级菜单)。那么,在开发wordpress主题时,怎样给wordpress后台添加这样的顶级菜单呢?

这里我们以添加一个wordpress主题设置页面的顶级菜单为例。代码如下:
//以下是添加顶级菜单项代码
add_action(‘admin_menu’, ‘wanlimm_function’);
function wanlimm_function(){
add_menu_page( ‘title标题’, ‘主题设置’, ‘edit_themes’, ‘ashu_slug’,’ssmay_function’,”,6);
}
function ssmay_function(){
echo ‘<h1>主题设置</h1>’;//这里是设置选项内容
}
上面代码解说:
wanlimm_function 是添加顶级菜单函数;ssmay_function 是顶级菜单所显示的内容函数。“主题设置”是这个顶级菜单的名称。
add_action(‘admin_menu’, ‘wanlimm_function’); 这句代码的意思是:把wanlimm_function这个函数里的内容添加到后台的顶级菜单中。
我们只需要将这段代码添加到wordpress主题的functions.php文件中,就可以在wordpress网站后台的左侧顶级菜单中看到这个“主题设置”这个顶级菜单了。如果想让这个“主题设置”顶级菜单显示相应的主题设置内容,我们只需要在“//这里是设置选项内容 ”这句代码后面添加我们需要显示的内容代码就可以了。













![表情[dabing]_八羊网](https://www.8y-ad.com/index/wp-content/themes/zibll/img/smilies/dabing.gif)


暂无评论内容