Title: Customizer Framework
Author: Philip Newcomer
Published: <strong>2014 年 7 月 28 日</strong>
Last modified: 2014 年 7 月 28 日

---

搜尋外掛

這個外掛**並未在最新的 3 個 WordPress 主要版本上進行測試**。開發者可能不再對這個
外掛進行維護或提供技術支援，並可能會與更新版本的 WordPress 產生使用上的相容性問題。

![](https://s.w.org/plugins/geopattern-icon/customizer-framework.svg)

# Customizer Framework

 由 [Philip Newcomer](https://profiles.wordpress.org/philipnewcomer/) 開發

[下載](https://downloads.wordpress.org/plugin/customizer-framework.0.1.zip)

 * [詳細資料](https://tw.wordpress.org/plugins/customizer-framework/#description)
 * [使用者評論](https://tw.wordpress.org/plugins/customizer-framework/#reviews)
 *  [安裝方式](https://tw.wordpress.org/plugins/customizer-framework/#installation)
 * [開發資訊](https://tw.wordpress.org/plugins/customizer-framework/#developers)

 [技術支援](https://wordpress.org/support/plugin/customizer-framework/)

## 外掛說明

A lightweight and easy-to-use framework for the WordPress Customizer. Provides a
simple and intuitive API for registering Customizer settings, including advanced
control types. Automatically sanitizes settings based on the control type. Eliminates
the tedious task of registering a setting, control, and sanitization function for
each individual Customizer setting.

The framework may be used by both plugins and themes, although since at this time
the settings are saved as theme mods, any plugin settings will be specific to the
active theme. Support for option type settings is planned.

_This plugin is currently in beta, and may be subject to major changes as it matures._

#### Issues and Support

Contribute to the project [on GitHub](https://github.com/philipnewcomer/Customizer-Framework).

#### Why a Framework for the Customizer?

The recent WordPress Customizer API suffers from some of the same issues afflicting
the old Settings API. The Settings API was overcomplicated, unintuitive, and confusing.
The result was a crop of theme option frameworks that have sprung up to make it 
easier for developers to create theme options. The Customizer API is a bit better,
but it’s still more complicated than necessary, and registering Customizer settings
is still a convoluted mess of settings functions, controls functions, and sanitization
functions. Now, the ease of use which the theme option frameworks have provided 
for the Settings API is available for the Customizer, in the Customizer Framework
plugin.

The Customizer Framework aims to be a lightweight wrapper around the convoluted 
Customizer API, which makes it fun to be a WordPress developer again. Developers
can now focus their time on creating great themes that utilize the Customizer, not
on writing 500 lines of code in order to create 10 Customizer settings. Okay, so
I might be exaggerating a bit. But not by much. Do you really want to spend your
time registering a Customizer setting, then registering a control for that setting,
and then writing a sanitization function for that setting? And that’s only for one
setting! And then there’s the advanced controls, such as image or color, that require
you to instantiate their own control class, requiring even more convoluted and unintuitive
code. And why should you even have to care about the differece between a setting
and a control? Don’t you have better things to spend your time on, like creating
great WordPress themes? I thought so.

### Usage

Activate the plugin, or `include` it in your theme.

Before creating any settings, you need to create any new Customizer [sections](https://codex.wordpress.org/Class_Reference/WP_Customize_Manager/add_section)
that you wish to use. Any custom sections need to exist before you can add settings
to them.

Finally, initialize a new `CustomizerFramework` class, and add your settings:

    ```
    function mytheme_register_settings( $settings ) {

        $settings[] = array(
            'id'      => 'example_setting',
            'label'   => 'Example Setting Label',
            'section' => 'example-section',
            'type'    => 'text', // Optional, defaults to 'text'
            'default' => 'Example section default text', // Optional
        );

    }
    add_filter( 'customizer_framework_settings', 'mytheme_register_settings' );
    ```

#### Setting Types

Here are the currently available setting types:

 * `checkbox`
 * `color`
 * `dropdown-pages`
 * `image`
 * `radio`
 * `select`
 * `text`
 * `textarea` (requires WordPress 4.0)

The `radio` and `select` types require an additional `choices` parameter, containing
an array of the valid choices:

    ```
    'choices' => array(
        'choice_1' => 'Choice 1',
        'choice_2' => 'Choice 2',
        'choice_3' => 'Choice 3',
    ),
    'default' => 'choice_1',
    ```

In addition, on WordPress 4.0, you can specify any additional HTML5 input types,
such as `url` or `date`. You can also include an `atts` parameter, containing an
array of additional input attributes which should be applied to the input:

    ```
    'type' => 'url',
    'atts' => array(
        'placeholder' => 'http://',
        'class'       => 'a-custom-css-class',
    ),
    ```

#### Sanitization

All settings are sanitized automatically, based on the setting type. If you wish
to specify your own sanitization function for a setting, add a `sanitize_cb` parameter,
containing the function name to be called, which should return the sanitized value.

    ```
    'sanitize_cb' => 'my_custom_example_setting_sanitization_function',
    ```

## 安裝方式

Install like any other plugin. If you’re a theme developer, then you already know
how to install a plugin, and I won’t bore you with the details. See [Other Notes](https://wordpress.org/plugins/customizer-framework/other_notes/)
for usage instuctions.

If you’re creating a theme for public release, I recommend that you consider using
the [TGM Plugin Activation](http://tgmpluginactivation.com/) library to make it 
easy for your users to install the Customizer Framework after activating your theme.

You could also `include` the plugin it in your theme, but remember to check for 
the existince of the plugin version first to avoid conflicts.

## 常見問題集

  Q: How do I retrieve the saved settings?

A: The Customizer Framework saves its settings using the [Theme Modification API](https://codex.wordpress.org/Theme_Modification_API),
so you would use [get_theme_mod()](https://codex.wordpress.org/Function_Reference/get_theme_mod)
to retrive the saved value.

## 使用者評論

這個外掛目前沒有任何使用者評論。

## 參與者及開發者

以下人員參與了開源軟體〈Customizer Framework〉的開發相關工作。

參與者

 *   [ Philip Newcomer ](https://profiles.wordpress.org/philipnewcomer/)

[將〈Customizer Framework〉外掛本地化為台灣繁體中文版](https://translate.wordpress.org/projects/wp-plugins/customizer-framework)

### 對開發相關資訊感興趣？

任何人均可[瀏覽程式碼](https://plugins.trac.wordpress.org/browser/customizer-framework/)、
查看 [SVN 存放庫](https://plugins.svn.wordpress.org/customizer-framework/)，或透過
[RSS](https://plugins.trac.wordpress.org/log/customizer-framework/?limit=100&mode=stop_on_copy&format=rss)
訂閱[開發記錄](https://plugins.trac.wordpress.org/log/customizer-framework/)。

## 變更記錄

#### 0.1

 * Initial beta release.

## 中繼資料

 *  版本 **0.1**
 *  最後更新 **12 年前**
 *  啟用安裝數 **10+**
 *  WordPress 版本需求 ** 3.4 或更新版本 **
 *  已測試相容的 WordPress 版本 **4.0.38**
 *  語言
 * [English (US)](https://wordpress.org/plugins/customizer-framework/)
 * 標籤:
 * [customizer](https://tw.wordpress.org/plugins/tags/customizer/)[framework](https://tw.wordpress.org/plugins/tags/framework/)
   [option](https://tw.wordpress.org/plugins/tags/option/)[theme customizer](https://tw.wordpress.org/plugins/tags/theme-customizer/)
   [wrapper](https://tw.wordpress.org/plugins/tags/wrapper/)
 *  [進階檢視](https://tw.wordpress.org/plugins/customizer-framework/advanced/)

## 評分

這個項目尚無任何評論記錄。

[Your review](https://wordpress.org/support/plugin/customizer-framework/reviews/#new-post)

[查看全部使用者評論](https://wordpress.org/support/plugin/customizer-framework/reviews/)

## 參與者

 *   [ Philip Newcomer ](https://profiles.wordpress.org/philipnewcomer/)

## 技術支援

使用者可在技術支援論壇提出意見反應或使用問題。

 [檢視技術支援論壇](https://wordpress.org/support/plugin/customizer-framework/)

## 贊助

想要支援這個外掛的發展嗎？

 [ 贊助這個外掛 ](https://philipnewcomer.net/donate/)