将自己设计的题发布或是销售是一件很棒的事情,但并不是每一个主题使用者都有很熟练的HTML/CSS技巧。但是如果在主题中整合一个设置选项页面,就可以使那些完全不懂代码的用户能够很容易地根据他们的喜好来修改主题。下面我将告诉大家如何从零开始做一个最简单的主题选项页(下图为最终效果)。
我们的最终目的是什么?
在开始之前,要先了解我们的最终目的是什么?我们主题可以自行定制哪些内容?这些是需要你在设计主题前就应该考虑好的。
每个主题都可以有很多的可编辑元素,本例中我将通过实现下面这三个方面的定制来说明如何给主题增加设置选项页,你应该要有自己更好的想法。
- 改变主题配色方案;
- 增加两个广告位内容;
- 自定是否显示搜索框;
1、创建所需的文件
在进行主题定制前,应该首先创建一个可供自定义的“设置选项页面”。创建设置选项页的代码需要放置在主题目录下的functions.php文件中。如果我们的模板名为“OptionPage”,那么functions文件的路径为:wp-content/themes/OptionPage/functions.php。 我们不需要让wordpress手动加载它,在执行时wordpress会自动加载。2、建立设置选项页
首先第一步需要在后台建立一个空白页面供我们使用。我们通过add_aaction来实现这一步。Actions可以在wordpress执行时的特定时间被响应,例如,当在控制面板创建菜单时,admin_menu就会被响应执行。因此,可以利用这些来实现我们所需的功能。这是我们创建选项页的最基本的功能。// 设置选项页 function themeoptions_admin_menu() { // 在控制面板的侧边栏添加设置选项页链接 add_theme_page(“主题设置”, “主题选项”, ‘edit_themes’, basename(__FILE__), ‘themeoptions_page’); } function themeoptions_page() { // 设置选项页面的主要功能 } add_action(‘admin_menu’, ‘themeoptions_admin_menu’); ?>themeoptions_admin_menu()是在控制面板的侧边栏中添加一个链接,指向我们创建的选项页:themeoptions_page。 add_theme_page() 的参数为: -
- 页面标题:主题设置
- 菜单标题:主题选项(p.s.为了区分显示,页面与菜单标题我做了不同我命名)
- 作用功能:edit_themes;
- Handle(句柄):当前文件;
- 执行的函数:themeoptions_page;
现在我们已经创建了设置选项页的基本结构,下面我们开始根据之前制定的内容进行完善:
- 首先,我们要允许主题使用者可以更改颜色方案。对于这一点,我们需要一个下拉列表提供可用的配色方案。
- 其次,增加两个广告位的内容,我们需要增加两个文本框来输入图片的URL及广告链接URL。
- 最后,用户可选择是否显示搜索框。这一点,我们通过添加复选框来实现。
代码如下:
function themeoptions_page() { // 这是产生主题选项页面的主要功能 ?>到这里选项页面的内容就已经基本构建完毕了。>> }id=“icon-themes”>>
/>>主题设置
> >4、数据库更新
到目前为止,我们已经创建了一个主题选项页面,下一步要做的就是如何将数据透过POST提交的wordpress数据库。要做到这一点,需要创建一个新的功能函数themeoptions_update(),这个函数将会被themeoptions_page()调用,所以将下面的代码添加到themeoptions_page()函数的最上面。if ( $_POST[‘update_themeoptions’] == ’true’ ) { themeoptions_update(); }下一步是增加一个更新函数。function themeoptions_update() { // 数据更新验证 update_option(‘mytheme_colour’, $_POST[‘colour’]); update_option(‘mytheme_ad1image’, $_POST[‘ad1image’]); update_option(‘mytheme_ad1url’, $_POST[‘ad1url’]); update_option(‘mytheme_ad2image’, $_POST[‘ad2image’]); update_option(‘mytheme_ad2url’, $_POST[‘ad2url’]); if ($_POST[‘display_search’]==’on’) { $display = ‘checked’; } else { $display = ”; } update_option(‘mytheme_display_search’, $display); }5、调用选项定制主题
我们主题的默认样式文件为style.css,如果使用其他的配色方案,我们需要建立相应的样式文件,例如本例中的blue.css、pink.css,style.css为默认的灰色。 为了切换配色方案样式表,需要在主题header中加入以下代码:rel=“stylesheet” href=“/default.css” type=“text/css”> rel=“stylesheet” href=“/.css” type=“text/css”>增加广告位图片—在你想要放置广告的地方添加以下代码: 是否显示搜索框—在需要放置搜索框的地方添加以下代码,当用户选择显示搜索框时会显示,否则则不显示:if ( get_option(‘mytheme_display_search’) == ‘checked’) { ?>>搜索框
> > } ?>
评论区