WordPress開發(fā) - options framework基礎應用

    很多wordpress主題都采用了這套options framework 設置框架,這里有篇詳細的教程,大家一起來看看

    看到好多免費的wordpress主題都采用了這套后臺設置框架,就拿來研究下,其實設置框架也有很多類型,重要的不在于他的設置有多豐富,而是這個框架的使用是否明確。

    正好,這款options framework 框架就貼心的準備了一款主題來幫助各位新手開發(fā)者來了解這套框架,可惜的是,即使有這套主題的幫助,很多新手開發(fā)者對此也是一知半解,難以使用,這次在網(wǎng)絡上找到了一份有詳細使用教程的文檔,大家一起來學習下。

    下載并解壓 Options Framework Theme 后可以看到文件夾中主要包含下圖所示的這些文件,我們只需要將images 文件夾、 inc 文件夾、options.php 文件復制到我們需要添加主題選項的主題中去,然后將該 functions.php 文件中調用 inc 文件夾內容的部分復制到我們自己wordpress主題functions.php 文件中就可以了。
    具體代碼如下 :

    define( 'OPTIONS_FRAMEWORK_DIRECTORY', get_template_directory_uri() . '/inc/' );
    require_once dirname( __FILE__ ) . '/inc/options-framework.php';

    需要注意的是,對于默認主題一般已經(jīng)有一個 inc 文件夾用于存放模板文件或其他一些 php 文件,為了避免不必要的麻煩,建議將新復制的 inc 文件夾命名為 options-framework 或其他你喜歡的名稱,同時修改上述調用的路徑。如果是子主題還需要將 get_template_directory_uri() 替換為 get_stylesheet_directory_uri()。
    修改Theme Options這個選項為主題選項:

    //找到includes/class-options-framework-admin.php,第83行
    static function menu_settings() {
               $menu = array(
               // Modes: submenu, menu
                'mode' => 'submenu',
                // Submenu default settings
               'page_title' => __( 'Theme Options', 'theme-textdomain' ),
               'menu_title' => __( 'Theme Options', 'theme-textdomain' ),
               'capability' => 'edit_theme_options',
               'menu_slug' => 'options-framework',
                'parent_slug' => 'themes.php',
                // Menu default settings
                'icon_url' => 'dashicons-admin-generic',
                'position' => '61'
    );
    return apply_filters( 'optionsframework_menu', $menu );
    }
    //Theme Options改為主題設置
    //'page_title' => __( '主題設置', 'theme-textdomain' ),打開后顯示的標題名
    //'menu_title' => __( '主題設置', 'theme-textdomain' ),外觀里面顯示的名稱
    

    如何自定義選項?打開options.php中,按照這個文件的代碼就能做出自己的選項。比如:

    <?php
    /* options.php 第 94 行*///初始化存儲選項的$options數(shù)組
    $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'
    );

    總結如下:

    //每添加一次下面代碼則會生成一個新的選項卡
    $options[] = arry(
        'name' => __('選項卡名稱','默認域'),
        'type' => 'heading'    //選項卡的 type 必須為 heading
    );
     
    //下面這段代碼是添加具體選項的,可重復使用
    $options[] = array(
        "name" =>__('元素名稱','默認域'),
        "desc" =>__('元素描述','默認域'),
        "id" =>'元素ID必填,調用時用', 
        "std" =>'元素的默認值', 
        "class" =>'元素的class',
        "type" =>'元素的類型',
        "settings"=>'調用默認編輯器時使用'
    );

    其他參數(shù)沒有什么需要特殊說明的,唯一需要說明的是 type ,目前 Options Framework 支持的選項類型主要有:text、textarea、checkbox、select、radio、upload(上傳圖片)、images(充當一個單選按鈕,更形象化)、background、multicheck、color、typography、editor 。

    修改輸出方式

    Options Framework 默認是使用 of_get_option() 作為輸出函數(shù)的,其默認輸出方式為:

    <?php echo of_get_option('元素id', '默認輸出內容'); ?>

    對于該函數(shù)的定義在 inc 文件夾下的 options-framework.php 中,具體代碼如下:

    if ( ! function_exists( 'of_get_option' ) ) :
        function of_get_option( $name, $default = false ) {
            $option_name = '';
            // Gets option name as defined in the theme
            if ( function_exists( 'optionsframework_option_name' ) ) {
                $option_name = optionsframework_option_name();
            }
            // Fallback option name
            if ( '' == $option_name ) {
                $option_name = get_option( 'stylesheet' );
                $option_name = preg_replace( "/\W/", "_", strtolower( $option_name ) );
            }
            // Get option settings from database
            $options = get_option( $option_name );
            // Return specific option
            if ( isset( $options[$name] ) ) {
                return $options[$name];
            }
        return $default;
        }
    endif;

    我們可以找到該函數(shù)將函數(shù)名 of_get_option 修改為任意你想修改的內容,同時在調用選項的值時,輸出函數(shù)也要替換為新的輸出函數(shù)名。

    添加 JavaScript 支持
    Options Framework 提供了眾多的選項類型,但是遺憾的是并沒有提供 JS 代碼的選項,不過在 class-options-framework-admin.php 中提供了添加 script 的鉤子,我們可以通過在 functions.php 文件中添加如下代碼使其對 JavaScript 進行支持。

    function optionsframework_custom_scripts() { ?>
        <script type="text/javascript">
            jQuery(document).ready(function() {
                jQuery('#example_showhidden').click(function() {
                jQuery('#section-example_text_hidden').fadeToggle(400);
                });
                if (jQuery('#example_showhidden:checked').val() !== undefined) {
                    jQuery('#section-example_text_hidden').show();
                }
            });
        </script><?php
    }

    這里有一套框架作者寫的教程,可以看看:

    WordPress開發(fā) - options framework基礎應用-Npcink
    WordPress開發(fā) - options framework基礎應用-Npcink

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

    至此,就是本篇wordpress開發(fā)教程的全部內容了,如果你還在找一套更加專業(yè)的開發(fā)框架,你也可以看看這套:

    WordPress開發(fā) - options framework基礎應用-Npcink
    WordPress開發(fā) - options framework基礎應用-Npcink

    Codestar Framework - 簡約實用的wordpress主題選項框架

    國外主題

    Piroll - 組合WordPress主題

    2020-1-29 7:10:53

    國內主題

    Return - 適合個人博客、自媒體的Wordpress主題

    2020-2-2 3:02:00

    ??
    Npcink上的部份代碼及教程來源于互聯(lián)網(wǎng),僅供網(wǎng)友學習交流,若您喜歡本文可附上原文鏈接隨意轉載。
    無意侵害您的權益,請發(fā)送郵件至 1355471563#qq.com 或點擊右側 私信:Muze 反饋,我們將盡快處理。
    0 條回復 A文章作者 M管理員
      暫無討論,說說你的看法吧
    ?
    個人中心
    購物車
    優(yōu)惠劵
    今日簽到
    有新私信 私信列表
    搜索
    主站蜘蛛池模板: 日美欧韩一区二去三区| 久久高清一区二区三区| 痴汉中文字幕视频一区| 日韩精品一区二区三区中文精品 | 精品一区二区三区中文字幕| 在线精品日韩一区二区三区| 精品一区二区久久久久久久网精| 国产激情一区二区三区成人91| 三级韩国一区久久二区综合 | 中文字幕日韩丝袜一区| 熟女精品视频一区二区三区| 久久国产免费一区二区三区| 久久精品视频一区二区三区| 骚片AV蜜桃精品一区| 蜜臀AV一区二区| 国产亚洲福利精品一区二区| 在线观看免费视频一区| 亚洲国产美国国产综合一区二区 | a级午夜毛片免费一区二区| 色综合视频一区二区三区| 国产精品被窝福利一区| 亚洲A∨无码一区二区三区 | 国产美女露脸口爆吞精一区二区| 久久久人妻精品无码一区| 美女啪啪一区二区三区| 一区二区三区高清| 中文人妻无码一区二区三区| 乱码精品一区二区三区| www.亚洲一区| 精品人妻无码一区二区三区蜜桃一 | 麻豆一区二区99久久久久| 波多野结衣一区二区三区高清在线| 国产一区二区精品久久岳| 亚洲高清日韩精品第一区| 国产精品污WWW一区二区三区| 精品黑人一区二区三区| 在线观看国产一区| 无码人妻精品一区二区蜜桃AV| 日本在线视频一区二区| 国产成人无码一区二区在线播放 | 成人区人妻精品一区二区不卡|