久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

WordPress開發 - Options Framework輕量級后臺框架使用設置舉例

很多新手wordpress開發者對這款框架不是很理解,我收集了一些教程供各位wordpress開發者參考和學習

這款框架我在蠻多免費主題上就看到有在使用,盡管框架的作者將其做成主題方便各位理解,但因為是國外開發的原因,還是有很多新手wordpress開發者對這款框架不是很理解,我收集了一些教程供各位wordpress開發者參考和學習。

Options Framework新特性

  1. 輕量級
  2. 基于wordpress原生api實現,提供了比較全面的常用選項
  3. 界面與wordpress統一,當然也可以自己定制
  4. 功能強大,使用簡單

Options Framework其實是一款主題,安裝啟用,就可以看到效果了,這時候會在后臺→外觀菜單下面多出來一個“Theme Options”的菜單(如果需要在左側主菜單中顯示該選項,可通過add_menu_page()實現,打開后即可看到所有的設置選項,下圖已經修改為“主題選項”了如下圖:

WordPress開發 - Options Framework輕量級后臺框架使用設置舉例

框架使用方法

1、復制Options Framework主題文件夾下的inc、images文件夾和options.php,放到你的主題根目錄下面

2、然后在你的主題的funtions.php加入以下代碼(該代碼在主題版的funtions.php開頭):

if ( !function_exists( 'optionsframework_init' ) ) {
 define( 'OPTIONS_FRAMEWORK_DIRECTORY', get_template_directory_uri() . '/inc/' );
 require_once dirname( __FILE__ ) . '/inc/options-framework.php';
}

如果你需要在設置面板中加入javascript代碼,在上面代碼后面加入以下代碼:

add_action('optionsframework_custom_scripts', 'optionsframework_custom_scripts');
function optionsframework_custom_scripts(){ ?>"text/javascript">
        your javascript code...
    script>

如果你需要在設置面板后面加入自定義內容,需要在以上代碼中加入以下代碼:(第三頁將說明如何在設置面板后面加入一個自定義面板)

add_action(class="hljs-string">'optionsframework_after',class="hljs-string">'options_after', class="hljs-number">100);
class="hljs-function">class="hljs-keyword">function class="hljs-title">options_afterclass="hljs-params">() { class="hljs-meta">?>
    your html code...

}

Options Framework產生的后臺選項支持功能

后臺頁面是選項卡式的,非常美觀大方,支持的功能也很多,包括:

  • 表單按鈕(text、checkbox、radio、select)
  • 圖片上傳
  • 背景圖片和背景色
  • 字體選擇
  • 圖片選擇(例如用來選擇主題的layout)
  • 幫助信息
  • 復位按鈕

自定義選項

打開options.php中,模仿以下代碼能做出自己的選項。

<?php
/* options.php line 60 */
//初始化存儲選項的$options數組
$options = array();
//定義一個選項卡,標題是Basic Settings,注意type是heading
$options[] = array("name" => "Basic Settings",
    "type" => "heading");
    //定義一個text類型的input box,type要設置為text,class為mini會讓input長度比較短
    $options[] = array("name" => "Input Text Mini",
    "desc" => "A mini text input field.",
    "id" => "example_text_mini",
    "std" => "Default",
    "class" => "mini",
    "type" => "text");
//同上,但沒有設置class mini,input長度較長
$options[] = array("name" => "Input Text",
    "desc" => "A text input field.",
    "id" => "example_text",
    "std" => "Default Value",
    "type" => "text");
//輸出一個textarea
$options[] = array("name" => "Textarea",
    "desc" => "Textarea description.",
    "id" => "example_textarea",
    "std" => "Default Text",
    "type" => "textarea");
//輸出select下拉菜單,$test_array存儲下拉菜單的選項,“std”表示默認選中的項
$options[] = array( "name" => "Input Select Small",
   "desc" => "Small Select Box.",
   "id" => "example_select",
   "std" => "three",
   "type" => "select",
   "class" => "mini", //mini, tiny, small
   "options" => $test_array);
//對應下面最后的代碼
$options[] = array(
    'name' => __('Input Checkbox Name', 'options_framework_theme'),
    'desc' => __('Check to display.'),
    'id' => 'example_checkbox_2',
    'std' => '1',
    'type' => 'checkbox'
);

其中:?name?– 選項的label名稱

id?– 這個id很重要,區分每個選項,必須是唯一的,存儲和獲取選項時這個作為鍵使用

type?– 不同type產生不同的選項

前臺調用舉例

前臺調用的話可以看原來主題版的index.php 。這里給出一些示例:

<?php echo of_get_option('example_checkbox', 'no entry' ); ?> 
 <?php if ( of_get_option('example_uploader') ) { ?>
            <img src="<?php echo of_get_option('example_uploader'); ?>" />
            <?php } ?> 
<?php $multicheck = of_get_option('example_multicheck', 'none' ); ?>
            <?php print_r($multicheck); ?> 
<?php
            if ( is_array($multicheck) ) {
                foreach ($multicheck as $key => $value) {
                    // If you need the option's name rather than the key you can get that
                    $name = $test_array_jr[$key];
                    // Prints out each of the values
                    echo '<li>' . $key . ' (' . $name . ') = ' . $value . '</li>';
                }
            }
            else {
                echo '<li>There are no saved values yet.</li>';
            }
            ?>

使用Options Framework詳解

1.入門,Options Framework(下簡稱框架)的設置選項以如下形式出現:

$options[] = array(
        "name"    =>'',  //選填,選項名稱
        "desc"    =>'',  //選填,選項說明
        "id"      =>'',  //必填,對應表單元素ID,該項作為唯一標識,不可與其他選項重復!
        "std"     =>'',  //可選,元素默認值
        "class"   =>'',  //可選,該類型元素class
        "type"    =>'',  //可選,表單元素類型
        "settings"=>''   //可選,僅當調用編輯器時使用
    );

比如:

$options[] = array(
        "name"=>'網站公告:',
        "desc"=>'輸入您的網站公告,不要超過50個字符。',
        "id"=>'site_notices',
        "std"=>'輸入您的網站公告',
        "class"=>'mini',
        "type"=>"text"
    );

2.添加選項卡,在需要加入的地方加入如下代碼:

$options[] = array(
		'name' => '新選項卡',
		'type' => 'heading'
    );

再在以上代碼后面加入需要添加的選項保存預覽。

3.調用

通過以上兩步,后臺設置部分基本完成,那么主題如何調用這些設置值呢?框架自帶的主題中明確說明了每一種類型的調用方法,可參考主題中的調用方法,簡單來說通過of_get_option($id,$default)即可調用保存的值,其中$id為必選值,即為需要調用元素的id值,$default為可選值,表示當所調用的元素值不存在時顯示的值,如:

echo of_get_option('site_notices', '暫無公告信息!'); ?>

注意,of_get_option()只是返回了一個值,需要用echo輸出才能在主題中顯示,某些情況下,也可能需要使用如下代碼:

<?php
if(of_get_option("example_checkbox")){
    echo "checkbox is checked";
}else{
    echo "checkbox is not checked";
} ?>

通過以上兩段代碼,應該能較深刻的理解為什么要用echo輸出。

4.修改輸出方式,

如果想修改以上函數名,找到inc/options-framework.php中478和480兩行,將“of_get_option”替換為需要的函數名稱即可。如替換為get_opt,則可以通過get_opt($id,$default)調用。

5.主題本地化,

如果主題需要支持多種語言,則需要在所有文件中替換“options_framework_theme”為您的主題名稱或您想要使用的名稱。

注意事項

options_framework默認過濾js、src等標簽

使用Options Framework框架為自己的主題添加設置頁面

剛點開感覺很奇怪對吧?

沒錯這貨本身是一個主題……

廢話不多說開始吧~

1.在主函數functions.php中加入以下代碼(其實這個在Options Framework主題主函數functions.php里)(記得要放在 <?php 后):

if (!function_exists('optionsframework_init')){
 define('OPTIONS_FRAMEWORK_DIRECTORY', get_template_directory_uri().'/inc/');
 require_once dirname(__FILE__).'/inc/options-framework.php';
}
?

然后下載上面那個主題,把其中的inc、images文件夾和options.php文件放入你的主題根目錄

打開你的后臺~是不是多了一個設置頁面呢?

2.添加設置選項

一般,options.php中選項是以這種方式出現的(非標明必填即為選填):

$options[] = array(
"name" =>'', //選項的名稱
"desc" =>'', //介紹
"id" =>'', //必填,唯一標示
"std" =>'', //元素默認值
"class" =>'', //該類型元素class
"type" =>'', //表單元素類型
"settings"=>'' //僅當調用編輯器時使用
);

如果你想添加最上面那個可以切換的選項卡,添加以下代碼(注:自此段代碼開始直到下一個此類代碼為止,中間這一段都被視作是這個選項卡以內的!

$options[] = array(
		'name' => '新選項卡',
		'type' => 'heading'
    );

3.修改輸出方式(非必須)

Options Framework的原本輸出函數是of_get_option,如果你想更美觀地讓他出現,也為了便于記憶,可以進入inc/options-framework.php文件,找到72行和74行(以下1,2,3行分別對應72,73,74行):

if ( ! function_exists( '輸出函數' ) ):
 
function 輸出函數( $name, $default = false ) {
?

比如說,你想要的輸出函數是get_jiecao,那么此處就為

if ( ! function_exists( 'get_jiecao' ) ) :
 
function get_jiecao( $name, $default = false ) {
?

4.調用設置

可以使用以下代碼(此處的of_get_option被改成了get_jiecao,如有需要請自行修改)(請注意要使用echo?。?/p>

echo get_jiecao('相應的id', '如果沒有內容則輸出我'); ?>

5.使用JavaScript

由于此框架的安全機制,回自動過濾掉js,object等,如需使用(比如說你想加一個統計代碼,就必須使用這個否則js會無效),請在第一步的代碼后加入此段代碼:

add_action('optionsframework_custom_scripts', 'optionsframework_custom_scripts');
function optionsframework_custom_scripts(){ ?>
<script type="text/javascript">
 你的js代碼
script>

2019年10月27日更新

收到?xiaoz.me?博主的提醒,說按照上面的第3 、4步無法正確獲取到字段的值,究其原因是默認保存的選項值不是當前主題名稱,導致獲取有誤。我們可以在 options.php 文件看下面的代碼:

WordPress開發 - Options Framework輕量級后臺框架使用設置舉例

我們可以手動修改下這個選項的值,或者將這個函數代碼修改一下,自動獲取當前主題的選項值:

WordPress開發 - Options Framework輕量級后臺框架使用設置舉例

上圖中加紅色框的代碼就是修改部分,具體代碼如下:

  $option_name = get_option( 'stylesheet' );
  $option_name = preg_replace( "/\W/", "_", strtolower( $option_name ) );
  return $option_name;

希望對大家有所幫助,感謝 xiaoz。

如果感覺以上wordpress開發教程的內容還不夠的話,還可以看看這篇文章:

WordPress開發 - options framework基礎應用

給TA贊賞
共{{data.count}}人
人已贊賞
??
Npcink上的部份代碼及教程來源于互聯網,僅供網友學習交流,若您喜歡本文可附上原文鏈接隨意轉載。
無意侵害您的權益,請發送郵件至 1355471563#qq.com 或點擊右側 私信:Muze 反饋,我們將盡快處理。
?
購物車
優惠劵
搜索
久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

    9000px;">

      国产精品灌醉下药二区| 三级久久三级久久| 91香蕉国产在线观看软件| 成人国产免费视频| 久久99国产精品麻豆| 日韩精品一区在线观看| 日韩一区二区三区高清免费看看| 午夜视频一区二区三区| 久久亚洲精精品中文字幕早川悠里 | 国内成人精品2018免费看| 国产欧美一区在线| 欧美三级日本三级少妇99| 国产资源在线一区| 一区二区三区成人| 日韩美一区二区三区| 色婷婷激情综合| 国产一区二区三区精品欧美日韩一区二区三区 | 国产一区999| 一区二区三区在线视频观看58| 日韩三级精品电影久久久| www.66久久| 黄色日韩三级电影| 午夜精品福利一区二区三区av | 国产精品久久久久久久久免费樱桃 | 97精品久久久午夜一区二区三区| 五月婷婷久久综合| 国产精品全国免费观看高清| 精品乱码亚洲一区二区不卡| 欧美视频在线一区| 成人高清免费在线播放| 久久精品国产免费| 天天色 色综合| 亚洲欧美激情小说另类| 中文字幕av在线一区二区三区| 欧美日韩情趣电影| 色av成人天堂桃色av| 春色校园综合激情亚洲| 精品在线一区二区| 免费成人在线观看| 视频一区视频二区中文字幕| 一区二区三区美女| 亚洲激情在线激情| 亚洲精品视频在线| 亚洲欧美色综合| 日本一区二区不卡视频| 欧美国产欧美综合| 国产精品美女久久久久aⅴ国产馆| 精品国产乱码久久久久久浪潮| 欧美一级二级在线观看| 日韩美女主播在线视频一区二区三区 | 国产露脸91国语对白| 久久精品国产**网站演员| 免费观看在线色综合| 欧美a一区二区| 久久99久久久久| 看片网站欧美日韩| 国产精品自在欧美一区| 成人一区二区三区中文字幕| 成人精品免费网站| av成人老司机| 欧美丝袜丝nylons| 欧美不卡一区二区三区| 久久久久久99精品| 国产精品久久一级| 亚洲成在人线免费| 久久精品久久综合| 国产成人亚洲综合a∨婷婷| 成人国产精品免费网站| 在线观看91精品国产入口| 欧美日韩精品免费观看视频| 日韩欧美一区二区免费| 国产日韩欧美制服另类| 亚洲主播在线播放| 久久国产精品72免费观看| 国产91丝袜在线播放| 欧美专区亚洲专区| 亚洲精品在线电影| 日韩理论片中文av| 另类调教123区| 色婷婷一区二区| 精品国产一区二区三区不卡 | 一二三四社区欧美黄| 日韩av电影天堂| 国产99一区视频免费| 欧美片网站yy| 欧美高清在线一区二区| 天天色综合天天| www.色综合.com| 日韩欧美成人激情| 一区二区三区色| 国产成人午夜99999| 欧美丰满少妇xxxxx高潮对白 | 日韩免费高清电影| 亚洲精品v日韩精品| 国产在线播放一区| 欧美久久一二三四区| 综合激情成人伊人| 国产麻豆9l精品三级站| 欧美午夜一区二区三区免费大片| 久久久国产精华| 免费高清在线视频一区·| 91久久精品日日躁夜夜躁欧美| 久久精品欧美日韩精品| 美女网站视频久久| 欧美亚洲一区二区在线| 国产精品伦一区| 国产在线麻豆精品观看| 日韩欧美区一区二| 午夜精品久久一牛影视| 色av成人天堂桃色av| 国产精品久久影院| 国产九色sp调教91| 欧美精品一区二区三区蜜桃| 青青青伊人色综合久久| 4438x成人网最大色成网站| 亚洲在线视频网站| 在线观看免费成人| 亚洲综合偷拍欧美一区色| eeuss鲁一区二区三区| 中文字幕av一区二区三区| 国产成人在线视频免费播放| 国产网站一区二区| 国产超碰在线一区| 国产精品美女久久久久久| 成人国产精品免费观看视频| 中文字幕亚洲综合久久菠萝蜜| 成人午夜视频在线观看| 自拍偷拍亚洲综合| 欧美视频一区二区三区四区| 日韩精品电影在线| 久久在线观看免费| 成人网男人的天堂| 中文字幕综合网| 欧美日韩国产免费一区二区| 天天色图综合网| 精品久久久三级丝袜| 国产精品亚洲一区二区三区妖精 | 在线观看成人小视频| 亚洲午夜一区二区三区| 欧美日韩精品系列| 久久福利视频一区二区| 久久蜜桃香蕉精品一区二区三区| 国产成人欧美日韩在线电影| 国产精品久久99| 欧美日韩精品一区视频| 激情综合色播激情啊| 国产精品久久网站| 欧美少妇一区二区| 激情欧美日韩一区二区| 亚洲欧洲日韩女同| 在线不卡免费av| 国产大陆亚洲精品国产| 亚洲午夜精品一区二区三区他趣| 日韩欧美高清一区| 91麻豆免费看片| 狠狠色狠狠色综合日日91app| 亚洲人成人一区二区在线观看| 欧美二区三区91| 99久久婷婷国产综合精品| 日韩电影在线一区二区三区| 国产欧美一区二区三区网站| 欧美日韩国产综合久久| 岛国精品一区二区| 日韩av午夜在线观看| 国产精品国产三级国产aⅴ原创| 91精品综合久久久久久| 丁香天五香天堂综合| 丝袜美腿亚洲一区| 国产精品入口麻豆九色| 欧美大片在线观看一区二区| 色狠狠一区二区| 成人国产精品免费网站| 久久精品72免费观看| 亚洲成人一区二区在线观看| 亚洲图片你懂的| 久久精品欧美一区二区三区不卡| 欧美一区二区视频在线观看2020 | 欧美日韩亚洲综合在线| 9久草视频在线视频精品| 国产酒店精品激情| 免费精品视频在线| 日韩国产欧美在线观看| 亚洲一区二区黄色| 亚洲女同ⅹxx女同tv| 国产精品污网站| 欧美国产精品久久| 久久久久亚洲蜜桃| 亚洲精品在线免费播放| 精品国产一区二区三区久久久蜜月| 欧美裸体bbwbbwbbw| 色狠狠色噜噜噜综合网| 91蜜桃在线观看| 色94色欧美sute亚洲13| 在线观看网站黄不卡| 91猫先生在线| 91久久精品一区二区三区| 色婷婷av一区二区| 日本久久电影网| 欧美日韩美少妇| 51精品秘密在线观看|