为子主题增加主题选项功能

用子主题的好处都知道:可以在使用的主题更新后,对其的更改不会被更新覆盖掉,

但是如果能为子主题增加主题选项,是不是会使子主题的使用效果更好呢,下面介绍步骤(以下仅为部分代码,后面有完整代码):

1、在子主题的“function.php”中增加以下代码,使外观菜单中增加“子主题选项”菜单,点击可进入对应标签页,各参数作用请看注释:

| `1

2` // 在后台外观导航下增加子主题设置标签页:[1]设置页的title、[2]显示在外观菜单中的标题、[3]访问这个页面需要的权限、[4]别名(出现在地址栏中:?page=XXXXXXXXX)、[5]执行的函数(设置页面包含的内容)add_theme_page("子主题设置", "子主题设置", "administrator", "bmqy_subTheme_opts", 'display');

效果截图:

2、为“子主题设置”的标签页编写需要进行主题选项的 html 代码,举例“广告位设置”代码如下:

for

“topRecommendStatus”

for=”topRecommendTitle”>顶部广告推荐位标题

for=”topRecommendLink”>顶部广告推荐位链接

for=”topRecommendImage”>顶部广告推荐位图片

| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | /* -- 子主题设置页标签面 -- */function display() { add_thickbox(); ?> 子主题设置项 "post" action="" name="bmqy_subTheme_topRecommend" id="bmqy_subTheme_topRecommend"> $bstTopRecommendOptions = get_option('bmqy_subTheme_topRecommend'); ?>

广告位设置 |
| ——————————————————————————————————————————————————————————- | ———————————————————————————————————————————————————————————————————————————————————————————————————————————————- |
| “row” | 顶部广告推荐位[ ] />  启用 |
| “row” | |
| “row” | |
| “row” | 插入图片
请填写图片链接地址,推荐尺寸:1198*80 |

=>顶部广告推荐位

submit_button(‘保存’, ‘primary’, ‘submit_bmqy_subTheme_topRecommend’); ?>

// 调用处理插入图片的方法 send_to_editor();
}

效果截图:

子主题设置项

3、增加提交数据并保存到数据库的代码:

| 1 2 3 4 5 6 7 8 9 10 | `// 如果有提交数据,接收并保存到数据库if(isset($_POST[‘submit_bmqy_subTheme_topRecommend’])) {
// 接收并处理数据:顶部推荐广告位 $bstTopRecommendOptions[‘status’] = ($_POST[‘status’]==1) ? (bool)true : (bool)false;
$bstTopRecommendOptions[‘title’] = $_POST[‘title’];
$bstTopRecommendOptions[‘link’] = $_POST[‘link’];
$bstTopRecommendOptions[‘image’] = $_POST[‘image’];
// 更新数据 update_option(‘bmqy_subTheme_topRecommend’, $bstTopRecommendOptions);

}` |
| —————————————- | ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————– |

4、增加插入图片功能的处理代码:

| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | /* -- 接收并处理上传的图片信息 -- */function send_to_editor(){ ?> } |

| —————————————————————————————————- | ———————————————————————- |

5、前台调用时的代码如下:

child_database

6、本站点结合”露兜博客 http://www.ludou.org/wordpress-add-theme-options.html“和”阿树工作室 http://www.ashuwp.com/courses/optionpage/206.html"两位博主分享的教程编写代码如下,再次感谢两位博主的分享!感谢!

for

“topRecommendStatus”

for=”topRecommendTitle”>顶部广告推荐位标题

for=”topRecommendLink”>顶部广告推荐位链接

for=”topRecommendImage”>顶部广告推荐位图片

| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 | `/** 子主题增加设置项 begin **/class BmqySubThemeOptions {
/_ – 初始化 – _/ function init() {
// 如果有提交数据,接收并保存到数据库 if(isset($_POST[‘submit_bmqy_subTheme_topRecommend’])) {
// 接收并处理数据:顶部推荐广告位 $bstTopRecommendOptions[‘status’] = ($_POST[‘status’]==1) ? (bool)true : (bool)false;
$bstTopRecommendOptions[‘title’] = $_POST[‘title’];
$bstTopRecommendOptions[‘link’] = $_POST[‘link’];
$bstTopRecommendOptions[‘image’] = $_POST[‘image’];
// 更新数据 update_option(‘bmqy_subTheme_topRecommend’, $bstTopRecommendOptions);
}
if(isset($_POST[‘submit_bmqy_subTheme_copyright’])) {
// 接收并处理数据:版权信息 $bstCopyrightOptions[‘status’] = ($_POST[‘status’]==1) ? (bool)true : (bool)false;
$bstCopyrightOptions[‘content_tpl’] = esc_html($_POST[‘content_tpl’]); // 转义提交的 html $bstCopyrightOptions[‘inCateList’] = $_POST[‘inCateList’];
// 更新数据 update_option(‘bmqy_subTheme_copyright’, $bstCopyrightOptions);
}
if(isset($_POST[‘submit_bmqy_subTheme_taobaoShops’])) {
// 接收并处理数据:淘宝店铺 $bstTaobaoShopsOptions[‘status’] = ($_POST[‘status’]==1) ? (bool)true : (bool)false;
$bstTaobaoShopsOptions[‘title’] = $_POST[‘title’];
$bstTaobaoShopsOptions[‘image’] = $_POST[‘image’];
$bstTaobaoShopsOptions[‘desc’] = esc_html($_POST[‘desc’]); // 转义提交的 html $bstTaobaoShopsOptions[‘inCateList’] = $_POST[‘inCateList’];
// 更新数据 update_option(‘bmqy_subTheme_taobaoShops’, $bstTaobaoShopsOptions);
}

    // 在后台外观导航下增加子主题设置标签页:[1]设置页的title、[2]显示在外观菜单中的标题、[3]访问这个页面需要的权限、[4]别名(出现在地址栏中:?page=XXXXXXXXX)、[5]执行的函数(设置页面包含的内容)        add_theme_page("子主题设置", "子主题设置", "administrator", "bmqy_subTheme_opts", array('BmqySubThemeOptions', 'display'));
}
/* -- 接收并处理上传的图片信息 -- */    function send_to_editor(){
    ?>                    }
/* -- 子主题设置页标签面 -- */    function display() {
    add_thickbox();
    ?>`                    **`子主题设置项`**

网站分类ID
`echo bmqy_show_category(); ?>

                                "post" action="" name="bmqy_subTheme_topRecommend" id="bmqy_subTheme_topRecommend">
                            $bstTopRecommendOptions = get_option('bmqy_subTheme_topRecommend');
            ?>`

| 广告位设置 |
| ————————————– | ————————– |
| “row” | 顶部广告推荐位[ ] />  启用 |
| “row” | |
| “row” | |
| “row” | 插入图片 |
| 请填写图片链接地址,推荐尺寸:1198*80 |

=>顶部广告推荐位

submit_button(‘保存’, ‘primary’, ‘submit_bmqy_subTheme_topRecommend’); ?>


“post”

action=”” name=”bmqy_subTheme_copyright” id=”bmqy_subTheme_copyright”>

$bstCopyrightOptions = get_option(‘bmqy_subTheme_copyright’);
// 默认设置 if(!is_array($bstCopyrightOptions)){
$bstCopyrightOptions[‘status’] = true;
$bstCopyrightOptions[‘content_tpl’] = esc_html(‘注:原创文章,转载请注明出自

⟪⟫

,Thank you!’);
$bstCopyrightOptions[‘inCateList’] = ‘12,15,22,45,52,154’;
}
?>

文章尾部版权信息设置

“row”>

for

=”copyrightStatus”>版全信息

版全信息[ ] />  启用

“row”>

for=”copyrightContentTpl”>版全信息模板

版权信息模板:为文章标题、为文章链接

“row”>

for=”copyrightInCateList”>启用的文章分类 ID

设置哪些分类的文章下显示,多个 ID 以英文逗号分隔

submit_button(‘保存’, ‘primary’, ‘submit_bmqy_subTheme_copyright’); ?>


“post”

action=”” name=”bmqy_subTheme_taobaoShops” id=”bmqy_subTheme_taobaoShops”>

$bstTaobaoShopsOptions = get_option(‘bmqy_subTheme_taobaoShops’);
// 默认设置 if(!is_array($bstTaobaoShopsOptions)){
$bstTaobaoShopsOptions[‘status’] = true;
$bstTaobaoShopsOptions[‘title’] = ‘北门清燕淘宝小店’;
$bstTaobaoShopsOptions[‘image’] = ‘http://gqrcode.alicdn.com/img?type=cs&shop_id=117869181&seller_id=279690537&w=140&h=140&el=q&v=1‘;
$bstTaobaoShopsOptions[‘desc’] = ‘

北门清燕仿站服务

扫一扫,去淘宝小店下单吧

我的淘宝小店,优惠活动进行中,欢迎来店洽谈咨询哦!

立即进店,或者在这里留言给我。

‘;
$bstTaobaoShopsOptions[‘inCateList’] = ‘248’;
}
?>

文章尾部淘宝店铺设置

“row”>

for

=”taobaoShopsStatus”>淘宝店铺

淘宝店铺[ ] />  启用

“row”>

for=”taobaoShopsTitle”>淘宝店铺标题

“row”>

for=”taobaoShopsImage”>淘宝店铺图片

插入图片

请填写淘宝店铺二维码图片地址,推荐尺寸:140*140

“row”>

for=”taobaoShopsDesc”>淘宝店铺描述

可填加 html 标签,最终以显示 3 行为宜

“row”>

for=”taobaoShopsInCateList”>启用的文章分类 ID

设置哪些分类的文章下显示,多个 ID 以英文逗号分隔

submit_button(‘保存’, ‘primary’, ‘submit_bmqy_subTheme_taobaoShops’); ?>

// 调用处理插入图片的方法 BmqySubThemeOptions::send_to_editor();
}
}
// 注册并初始化方法 add_action(‘admin_menu’, array(‘BmqySubThemeOptions’, ‘init’));
/** 子主题增加设置项 end **/

整体效果截图:

子主题设置项

7、参考以上设置,相信您能让您的子主题功能更加强大 o( *≧▽≦)ツ,最后再次感谢所有分享代码的朋友们,感谢 o(*≧▽≦)ツ