在本站之前的文章中,我介紹了 WordPess 開(kāi)發(fā)插件 Piklist 的基本使用方法,今天為大家介紹一下使用 Piklist 插件添加主題設(shè)置選項(xiàng)的方法。首先,我們需要注冊(cè)設(shè)置頁(yè)面,然后是添加設(shè)置區(qū)域。Piklist 添加設(shè)置選項(xiàng)的功能基于標(biāo)準(zhǔn)的 WordPress 設(shè)置 API,并且在此基礎(chǔ)上添加了一些更方便我們使用的特性。
首先,注冊(cè)一個(gè)設(shè)置頁(yè)面
和 Piklist 的其他功能一樣,添加設(shè)置頁(yè)面的操作就是創(chuàng)建一個(gè)簡(jiǎn)單的數(shù)組,然后把這個(gè)數(shù)組作為參數(shù)傳遞給相應(yīng)的 Pikist 函數(shù),把下面的演示代碼添加到主題的 functions.php 中,就可以在后臺(tái)外觀菜單下看到一個(gè)設(shè)置頁(yè)面了。
add_filter('piklist_admin_pages', 'piklist_theme_setting_pages');
function piklist_theme_setting_pages($pages)
{
$pages[] = array(
'page_title' => __('自定義設(shè)置')
,'menu_title' => __('設(shè)置', 'piklist')
,'sub_menu' => 'themes.php' //在外觀菜單下面
,'capability' => 'manage_options'
,'menu_slug' => 'custom_settings'
,'setting' => 'my_theme_settings'
,'single_line' => true
,'default_tab' => '基本設(shè)置'
,'save_text' => '保存設(shè)置'
);
?
return $pages;
}
然后創(chuàng)建設(shè)置區(qū)域
現(xiàn)在,我們需要在主題中創(chuàng)建一個(gè)正確的文件夾結(jié)構(gòu),Piklist 使用該文章夾結(jié)構(gòu)自動(dòng)為我們創(chuàng)建相應(yīng)的字段輸入表單,該文件夾結(jié)構(gòu)為“你的主題/piklist/parts/settings/設(shè)置文件”
這個(gè)文件夾中的每個(gè)文件將在設(shè)置頁(yè)面創(chuàng)建一個(gè)設(shè)置區(qū)域,在一個(gè)設(shè)置頁(yè)面中可以有多個(gè)設(shè)置區(qū)域,整個(gè)操作非常簡(jiǎn)單,下面我們將通過(guò)幾個(gè)設(shè)置區(qū)域來(lái)具體演示一下。
創(chuàng)建設(shè)置文件,例如 demo-settings.php.
在這個(gè)文件的開(kāi)頭,是一個(gè) PHP 注釋塊,用來(lái)控制該設(shè)置區(qū)域的表單,該注釋塊類似于標(biāo)準(zhǔn)的WordPress主題或插件的注釋塊,下面是必需的基本信息:
<?php
/*
Title: 主題設(shè)置
Setting:demo-setting
*/
此注釋塊告訴 Piklist 我們需要添加的設(shè)置區(qū)域的名字為“主題設(shè)置”,并且關(guān)聯(lián)該設(shè)置區(qū)域到, “demo-setting”設(shè)置頁(yè)面。
創(chuàng)建文本輸入表單項(xiàng):
piklist('field', array(
'type' => 'text'
,'field' => 'text'
,'label' => 'Text Box'
,'description' => 'Field Description'
,'help' => 'This is help text.'
,'value' => 'Default text'
,'attributes' => array(
'class' => 'text'
)
));
此數(shù)組將使用 WordPress 設(shè)置 API 自動(dòng)創(chuàng)建一個(gè)文本表單輸入框,‘type’ => ‘text’ 告訴了 Piklist 渲染哪種類型的表單項(xiàng),可以看出,創(chuàng)建表單輸入項(xiàng)的數(shù)組非常簡(jiǎn)單明了。相信有經(jīng)驗(yàn)的程序員通過(guò)猜測(cè)就可以知道其他類型的表單輸入項(xiàng)的創(chuàng)建方法了,在這里就不一一演示了,有興趣的朋友可以自行嘗試。
設(shè)置區(qū)域的完整代碼:
/*
Title: 主題設(shè)置
Setting: demo_settings
*/
piklist('field', array(
'type' => 'text'
,'field' => 'text'
,'label' => '文本輸入框'
,'description' => '文本輸入框描述'
,'help' => '幫助文本'
,'value' => '默認(rèn)文本'
,'attributes' => array(
'class' => 'text'
)
));
獲取設(shè)置選項(xiàng)的值在主題中使用
在本文的開(kāi)頭,我們提到過(guò),Piklist 使用的是默認(rèn)的 WordPress 設(shè)置 API,所以我們可以直接使用 WordPress Option API 獲取這些設(shè)置的值,示例如下:
<?php
$theme_options = get_option('my_theme_settings');
?
$text_field = $theme_options['text'];
$select_field = $theme_options['select'];
$colorpicker_field = $theme_options['colorpicker'];
?
echo '這是一個(gè)文本字段:' . $text_field;
?>


