wordpress 主题后台设置功能制作教程 -云顶国际

制作主题的时候制作后台是主题的特别重要的一个方面,优秀的主题肯定都有一个强大的主题后台设置,下面分享 主题后台设置功能制作教程:

( 主题后台设置功能)

制作主题后台框架

    array(
            'name'  => '单选项设置',
            'desc'  => '选择一个参数作为排序的根据,可以给与几个选择并且选择一个,可以预留选项',
            'id'    => 'git_hot_b',
            'type'  => 'radio',
            'options' => array(
                '选择一' => 'xuanze1',
                '选择二' => 'xuanze2',
    		'选择三' => 'xuanze3',
    		'选择四' => 'xuanze4',
    		'选择五' => 'xuanze5',
    		'选择六' => 'xuanze6',
    		'选择七' => 'xuanze7',
                '选择八' => 'xuanze8'
            ),
            'std'   => 'xuanze1'
        ),

数组根据从上到下,从左往右的顺序排的,很简单的。主题的数据调用也比较简单,上面单选的调用方式如下

    

另外,一个最简单的文字框的代码是这样的

    array(
            'name'  => '文字选项',
            'desc'  => '这里是输入框的描述文字',
            'id'    => 'hot_list_title',
            'type'  => 'text',
            'std'   => '主题预留文字'
        ),

调用方式如下:

完整代码:

     '选项一',//标签显示的文字
            'id'    => 'panel_general',//标签的id
            'type'  => 'panelstart' //顶部标签的类型
        ),
    	array(
            'name'  => '数字选择框',
            'desc'  => '这个是数字输入框',
            'id'    => 'git_linkpage_cat',
            'type'  => 'number',
            'std'   => '2'//最后一个数组不需要逗号
        ),
    	array(
            'name'  => '选择选项',
            'desc'  => '勾选选项的描述文字',
            'id'    => 'git_thumbnail_b',
            'type'  => 'checkbox'//复选框
        ),
    	array(
            'name'  => '单选项设置',
            'desc'  => '选择一个参数作为排序的根据,可以给与几个选择并且选择一个,可以预留选项',
            'id'    => 'git_hot_b',
            'type'  => 'radio',
            'options' => array(
                '选择一' => 'xuanze1',
                '选择二' => 'xuanze2',
    			'选择三' => 'xuanze3',
    			'选择四' => 'xuanze4',
    			'选择五' => 'xuanze5',
    			'选择六' => 'xuanze6',
    			'选择七' => 'xuanze7',
                '选择八' => 'xuanze8'
            ),
            'std'   => 'xuanze1'
        ),
    	array(
            'name'  => '复选项设置',
            'desc'  => '',
            'id'    => 'git_hot_b4',
            'type'  => 'checkboxs',
            'options' => array(
                'xuanze14' => '选择一',
    			'xuanze24' => '选择二',
    			'xuanze34' => '选择三',
    			'xuanze44' => '选择四',
    			'xuanze54' => '选择五'
            ),
            'std'   => 'xuanze14'
        ),
    	array(
            'name'  => '单选项设置',
            'desc'  => '选择一个参数作为排序的根据,可以给与几个选择并且选择一个,可以预留选项',
            'id'    => 'git_hot_b5',
            'type'  => 'select',
            'options' => array(
                'xuanze12' => '选择一',
    			'xuanze22' => '选择二',
    			'xuanze32' => '选择三',
    			'xuanze42' => '选择四',
    			'xuanze52' => '选择五'
            ),
            'std'   => 'xuanze52'
        ),
    	array(
            'name'  => '密码选项输入框',
            'desc'  => '这是一个密码输入框,所以不可见',
            'id'    => 'git_wbpasd_b',
            'type'  => 'password',
            'std'   => ''
        ),
        array(
            'title' => '这是一个分段,也是一个二级标题',//二级标题,只显示文字,没有选项
            'type'  => 'subtitle'//二级标题的类型
        ),
        array(
            'name'  => '文字选项',
            'desc'  => '这里是输入框的描述文字',
            'id'    => 'hot_list_title',
            'type'  => 'text',
            'std'   => '主题预留文字'
        ),
        array(
            'name'  => '文本框选项',
            'desc'  => '这里是输入框的描述文字',//这里可以随便写的
            'id'    => '’git_tui',//id是保存数据的值,保持唯一性
            'type'  => 'textarea',//设置选项的类型
            'std'   => '这里是选项的默认数据'//选项的默认数据
        ),
        array(
            'name'  => '文字选项设置',
            'desc'  => '选项的描述文字',
            'id'    => 'git_tougao_mailto',
            'type'  => 'text',
            'std'   => get_bloginfo( 'admin_email' ) //亮点是默认值里面可以用函数调用
        ),
        array(
            'type'  => 'panelend'//标签段的结束
        ),
        array(
            'title' => '选项二',
            'id'    => 'panel_seo',
            'type'  => 'panelstart'
        ),
        array(
            'name'  => '文本框选项',
            'desc'  => '描述文字',
            'id'    => 'git_demo1',
            'type'  => 'textarea',
            'std'   => ''
        ),
        array(
            'type'  => 'panelend'//标签段的结束
        ),
        array(
            'title' => '选项三',
            'id'    => 'panel_aritical',
            'type'  => 'panelstart'
        ),
        array(
            'name'  => '文本框选项',
            'desc'  => '描述文字',
            'id'    => 'git_demo2',
            'type'  => 'textarea',
            'std'   => ''
        ),
        array(
            'type'  => 'panelend'
        ),
        array(
            'title' => '选项四',
            'id'    => 'panel_stylish',
            'type'  => 'panelstart'
        ),
    	array(
            'name'  => '文本框选项',
            'desc'  => '描述文字',
            'id'    => 'git_demo3',
            'type'  => 'textarea',
            'std'   => ''
        ),
        array(
            'type'  => 'panelend'
        ),
        array(
            'title' => '选项五',
            'id'    => 'panel_slide',
            'type'  => 'panelstart'
        ),
        array(
            'name'  => '文本框选项',
            'desc'  => '描述文字',
            'id'    => 'git_demo4',
            'type'  => 'textarea',
            'std'   => ''
        ),
        array(
            'type'  => 'panelend'
        ),
        array(
            'title' => '选项六',
            'id'    => 'panel_cat',
            'type'  => 'panelstart'
        ),
        array(
            'name'  => '文本框选项',
            'desc'  => '描述文字',
            'id'    => 'git_demo5',
            'type'  => 'textarea',
            'std'   => ''
        ),
        array(
            'type'  => 'panelend'
        ),
        array(
            'title' => '选项七',
            'id'    => 'panel_social',
            'type'  => 'panelstart'
        ),
        array(
            'name'  => '文本框选项',
            'desc'  => '描述文字',
            'id'    => 'git_demo6',
            'type'  => 'textarea',
            'std'   => ''
        ),
        array(
            'type'  => 'panelend'
        ),
        array(
            'title' => '选项八',
            'id'    => 'panel_footer',
            'type'  => 'panelstart'
        ),
        array(
            'name'  => '文本框选项',
            'desc'  => '描述文字',
            'id'    => 'git_demo7',
            'type'  => 'textarea',
            'std'   => ''
        ),
        array(
            'type'  => 'panelend'
        ),
        array(
            'title' => '选项九',
            'id'    => 'panel_ads',
            'type'  => 'panelstart'
        ),
        array(
            'name'  => '文本框选项',
            'desc'  => '描述文字',
            'id'    => 'git_demo8',
            'type'  => 'textarea',
            'std'   => ''
        ),
        array(
            'type'  => 'panelend'
        ),
        array(
            'title' => '选项十',
            'id'    => 'panel_plugin',
            'type'  => 'panelstart'
        ),
        array(
            'name'  => '文本框选项',
            'desc'  => '描述文字',
            'id'    => 'git_demo9',
            'type'  => 'textarea',
            'std'   => ''
        ),
        array(
            'type'  => 'panelend'
        ),
        array(
            'title' => '选项十一',
            'id'    => 'panel_advence',
            'type'  => 'panelstart'
        ),
        array(
            'name'  => '文本框选项',
            'desc'  => '描述文字',
            'id'    => 'git_demo10',
            'type'  => 'textarea',
            'std'   => ''
        ),
        array(
            'type'  => 'panelend'
        )
    );
    //主题后台设置已完成,下面可以不用看了
    function git_add_theme_options_page() {
        global $options;
        if ($_get['page'] == basename(__file__)) {
            if ('update' == $_request['action']) {
                foreach($options as $value) {
                    if (isset($_request[$value['id']])) {
                        update_option($value['id'], $_request[$value['id']]);
                    } else {
                        delete_option($value['id']);
                    }
                }
                update_option('git_options_setup', true);
                header('location: themes.php?page=theme-options.php&update=true');
                die;
            } else if( 'reset' == $_request['action'] ) {
                foreach ($options as $value) {
                    delete_option($value['id']);
                }
                delete_option('git_options_setup');
                header('location: themes.php?page=theme-options.php&reset=true');
                die;
            }
        }
        add_theme_page('主题选项', '主题选项', 'edit_theme_options', basename(__file__) , 'git_options_page');
    }
    add_action('admin_menu', 'git_add_theme_options_page');
     
    function git_options_page() {
        global $options;
        $optionssetup = get_option('git_options_setup') != '';
        if ($_request['update']) echo '

设置已保存。

'; if ($_request['reset']) echo '

设置已重置。

'; ?>

主题选项

'; $panelindex ; break; case 'panelend': echo '
'; break; case 'subtitle': echo '

' . $value['title'] . '

'; break; case 'text': ?>

$option) : ?>

$title ) : ?>

其他事项说明

这里可以加入主题的使用文档

# 更多技巧,请关注「专题」

代码来源:

         
网站地图