使用 Piklist 插件为WordPress主题或插件添加设置选项

文 / @WordPress主题

使用Piklist插件添加WordPress主题设置选项的方法

在本站之前的文章中,我介绍了WordPess开发插件Piklist的基本使用方法,今天为大家介绍一下使用Piklist插件添加主题设置选项的方法。首先,我们需要注册设置页面,然后是添加设置区域。Piklist添加设置选项的功能基于标准的WordPress设置API,并且在此基础上添加了一些更方便我们使用的特性。

注册一个设置页面

首先,注册一个设置页面

和Piklist的其他功能一样,添加设置页面的操作就是创建一个简单的数组,然后把这个数组作为参数传递给相应的Pikist函数,把下面的演示代码添加到主题的functions.php中,就可以在后台外观菜单下看到一个设置页面了。

add_filter('piklist_admin_pages','piklist_theme_setting_pages');
function piklist_theme_setting_pages($pages)
{
    $pages[]=array(
        'page_title'=>__('自定义设置')
        ,'menu_title'=>__('设置','piklist')
        ,'sub_menu'=>'themes.php'//在外观菜单下面
        ,'capability'=>'manage_options'
        ,'menu_slug'=>'custom_settings'
        ,'setting'=>'my_theme_settings'
        ,'single_line'=>true
        ,'default_tab'=>'基本设置'
        ,'save_text'=>'保存设置'
    );
    return$pages;
}

然后创建设置区域

现在,我们需要在主题中创建一个正确的文件夹结构,Piklist使用该文件夹结构自动为我们创建相应的字段输入表单,该文件夹结构为“你的主题/piklist/parts/settings/设置文件”

这个文件夹中的每个文件将在设置页面创建一个设置区域,在一个设置页面中可以有多个设置区域,整个操作非常简单,下面我们将通过几个设置区域来具体演示一下。

创建设置文件,例如demo-settings.php.

在这个文件的开头,是一个PHP注释块,用来控制该设置区域的表单,该注释块类似于标准的WordPress主题或插件的注释块,下面是必需的基本信息:

<?php
/*
Title:主题设置
Setting:demo-setting
*/

此注释块告诉Piklist我们需要添加的设置区域的名字为“主题设置”,并且关联该设置区域到“demo-setting”设置页面。

创建文本输入表单项:

piklist('field',array(
    'type'=>'text'
    ,'field'=>'text'
    ,'label'=>'TextBox'
    ,'description'=>'FieldDescription'
    ,'help'=>'Thisishelptext.'
    ,'value'=>'Defaulttext'
    ,'attributes'=>array(
        'class'=>'text'
    )
));

此数组将使用WordPress设置API自动创建一个文本表单输入框,‘type’=>'text'告诉了Piklist渲染哪种类型的表单项,可以看出,创建表单输入项的数组非常简单明了。相信有经验的程序员通过猜测就可以知道其他类型的表单输入项的创建方法了,在这里就不一一演示了,有兴趣的朋友可以自行尝试。

设置区域的完整代码:

/*
	Title:主题设置
	Setting:demo_settings
 */
piklist('field',array(
    'type'=>'text'
    ,'field'=>'text'
    ,'label'=>'文本输入框'
    ,'description'=>'文本输入框描述'
    ,'help'=>'帮助文本'
    ,'value'=>'默认文本'
    ,'attributes'=>array(
        'class'=>'text'
    )
));

获取设置选项的值在主题中使用

在本文的开头,我们提到过,Piklist使用的是默认的WordPress设置API,所以我们可以直接使用WordPress Option API获取这些设置的值,示例如下:

<?php
$theme_options=get_option('my_theme_settings');

$text_field=$theme_options['text'];
$select_field=$theme_options['select'];
$colorpicker_field=$theme_options['colorpicker'];

echo'这是一个文本字段:'.$text_field;
?>
添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。