使用 Piklist 插件为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;
?>

-
IDC/ISP办理许可证的基本条件(附:IDC和ISP许可证申请流程) 2023-06-07 08:00:01
-
利用tinymce.activeEditor获取到 WordPress可视化编辑器中的值(附:tinymce.activeEditor常见其他用法) 2023-06-06 08:00:02
-
WordPress是什么框架吗?WordPress是用什么写的? 2023-06-06 08:00:02
-
WordPress哪个版本稳定好用(附:如何查看当前WordPress版本) 2023-06-06 08:00:02
-
Automattic 发布 wp-now:由 WordPress Playground 提供支持的本地开发环境 2023-06-05 08:00:02
-
PHP预定义常量都有哪些(含常见PHP魔术常量) 2023-06-04 08:00:01
-
php的 require 和include 有什么区别 2023-06-04 08:00:01
-
UGPT插件:国内首个永久免费WordPress ChatGPT插件 2023-06-04 08:00:01
-
wordpress seo哪个插件好用 – WordPress SEO by Yoast 2023-06-03 08:00:02
-
WordPress古腾堡编辑器模块开发教程 2023-06-03 08:00:02