Skip to content
Branch: master
Go to file

Latest commit


Failed to load latest commit information.
Latest commit message
Commit time

Options Framework

Tags: options, theme options Requires at least: 3.6 Tested up to: 4.9.4 Stable tag: 1.8.5 License: GPLv2 Donate link:


An example of the "Advanced Options" tag in the "Options Check" theme using this plugin.


The Options Framework Plugin makes it easy to include an options panel in any WordPress theme. It was built so developers can concentrate on making the actual theme rather than spending time creating an options panel from scratch. It's free to use in both commercial and personal projects, just like WordPress itself.

Options Include:

  • text input
  • textarea
  • checkbox
  • select
  • radio buttons
  • upload (image/file uploader)
  • images (use images instead of radio buttons)
  • background (a set of options to define a background)
  • multicheck
  • colorpicker
  • typography (a set of options to define typography)
  • editor

Learn More

Please visit for a full description of how to define and use the theme options.


If your theme already has options enabled, they will show up under the appearance menu.

If your theme doesn't have options, you can define them to options.php of your theme and they will instantly show up. For more on how to do this, visit

Frequently Asked Questions

How do I build options for my own theme?

Download the development version from GitHub and copy the "options-check" folder into your themes directory.

The "Options Check" theme is a blueprint for how to work with options. It includes an example of every option available in the panel and sample output in the theme.

You can also watch the video screencast I have at



  • Fix: of_sanitize_multicheck should return an array
  • Fix: Typography size should returns a string rather than array
  • Fix: Fix isset notices in custom typography field for Options Check


  • Update: Style headers to look nice in WordPress 4.4


  • Update: Include link button in tinyMCE (props @rosswintle)


  • Update: sanitization of info option and description field
  • Update: Sanitization of editor field


  • Fix for translation textdomain


  • Fix for colorpicker spacing
  • Better sanitization of upload option
  • Update translation .pot
  • Updated Portuguese translations by @pedro-mendonca
  • Indonesian translations props @aryaprakasa)
  • Use filtered values for optionsframework_admin_bar


  • Increase default width of text inputs
  • Rename add_options_page function to resolve automatic theme check conflicts
  • Check isset for $value['desc'] in info option
  • Only load styles on options page (props @AndorChen)
  • Fix loading of translation files (props @weslly)
  • Update Portuguese (BR) translations (props @weslly)
  • Add Danish translations (props @Tosak)
  • Allow menu parent to be filtered (props @nvsnkv)


  • Fix to use option name if set in options.php


  • Update to class based plugin (large code refactor)
  • Drop color picker support for older versions of WordPress
  • Better support for new admin interface in WordPress 3.8
  • Allow option pages without tabs


  • Fix for update notice location
  • Use selected and checked functions more consistently
  • Reuse media modal for uploads
  • Portuguese translations (props @xipasduarte)


  • Allow media buttons in the editor option
  • JS/CSS should only load on options page
  • Menu tabs should be filterable
  • Menu settings filter
  • Fix js bindings for upload modal (props @themeblvd)


  • Removed update routine to remove "optionsframework" post type


  • Temporarily removed update routine


  • Updated width of text input
  • New media uploader
  • Dropped custom post types for file attachments
  • Update routine to remove unused 'optionsframework' post types
  • Updated IDs for .tabs and .groups
  • Italian translations (
  • Russian translations (
  • Swedish translations (


  • Add missing sanitization to typography color (@weplantmedia)
  • New colorpicker (props @mattweibe for getting this in WordPress core)
  • Farsi translations (
  • Added password option type (props @neojp)
  • Allow ids to passed to tabs (props @themeblvd)
  • Added optionsframework_after_validate hook (h/t @vanpop and @pryley)


  • Allow options to save when set by theme customizer
  • Save checkbox options to boolean false rather than "0"
  • Added optionsframework_after hook
  • Hungarian translations by


  • Fix for font_size santization
  • Added internationalization support (@weslly)
  • Portuguese translations (@weslly)
  • Spanish translations (@sksmatt)
  • Make uploader post type non-public (@samargulies)
  • ID can now be passed on info option for styling purposes


  • Added support for wp_editor
  • Updated textarea settings to allow rows parameter
  • Updated cursor:default for h3 metabox, props @yurifedorov
  • Filtering of typography options (@mattwiebe)
  • Updated methods for typography options


  • Added filters for entire options array (props @inxilpro)
  • Added a filter for options.php location (props @mattwiebe)
  • Option header (h4) will not display in panel if name !isset (props @alepee)


  • Load thickbox using site_url() to allow for https (props @samargulies)
  • Change santization to use $allowedposttags for textarea and info
  • Display notice if theme doesn't support the Options Framework
  • Single checkboxes now use labels
  • CSS updates for formatting long labels
  • Allows dashes in the options id (props @mantone)
  • Uses add_theme_page over add_submenu_page (props @enile8)


  • Saves tab states using local storage
  • Style updates WordPress 3.2 release
  • Added sanitization filter for info (of_sanitize_allowedtags)


  • Added filtering for recognized arrays (like Font Face)
  • Using isset rather than !empty to return of_get_option
  • Significant updates for setting and restoring defaults
  • Background option outputs no-repeat rather than none


  • Introduces validation filters (props @_mfields)
  • Better data sanitization and escaping (props @_mfields)
  • Updates labels in options-interface.php
  • Changes how checkboxes saved in database ("0" or "1")
  • Stores typography, backgrounds and multichecks directly as arrays
  • For full description, see:


  • Fixed errors when more than one multicheck options is used
  • Updated optionsframework_setdefaults so defaults actually save on first run
  • Require that all options have lowercase alphanumeric ids
  • Added link to options from the WordPress admin bar


  • Updated multicheck option to save keys rather than values
  • Unset default array options after each output in optionsframework_setdefaults


  • White listed options for increased security
  • Fixed errors with checkbox and select boxes
  • Improved the multicheck option and changed format


  • Uploaded to the WordPress repository


  • Initial release


An Options Panel Framework to help speed theme development.


You can’t perform that action at this time.