valendesigns / option-tree

Theme Options UI Builder for WordPress. A simple way to create & save Theme Options and Meta Boxes for free or premium themes.
GNU General Public License v2.0
598 stars 180 forks source link

OptionTree

Theme Options UI Builder for WordPress. A simple way to create & save Theme Options and Meta Boxes for free or premium themes.

Contributors: valendesigns
Tags: options, theme options, meta boxes, settings
Requires at least: 3.8
Tested up to: 5.2
Stable tag: 2.7.3
License: GPLv2 or later
Donate link: https://bit.ly/2TBvksV
Requires PHP: 5.3.0

Build Status Built with Grunt

Description

OptionTree attempts to bridge the gap between WordPress developers, designers and end-users by creating fully responsive option panels and meta boxes with an ease unlike any other plugin. OptionTree has many advanced features with well placed hooks and filters to adjust every aspect of the user experience.

Build your Theme Options panel locally with an easy to use drag & drop interface and then export a functioning theme-options.php file for production use that is i18n translation ready, with your custom text domain automatically inserted.

And, in just a few simple lines of code, save settings to the database with a unique array ID so none of your Theme Options conflict with other themes that use OptionTree.

Also, OptionTree now takes full advantage of the new color schemes introduced in WordPress 3.8, it looks and feels built-in.

Theme Integration

If you're like me, you want to know how everything works. Download and activate the OptionTree Theme and see first hand how to integrate OptionTree into your own project. I'll walk you through installing OptionTree and you'll get a chance to see all the various options and filters first hand and in the wild.

Contributing

To contribute or report bugs, please go to the OptionTree Github repository.

Sponsorship

OptionTree is a project partly sponsored by ThemeForest, the largest WordPress theme marketplace on the web.

Option Types

This is a complete list of all the available option types that come shipped with OptionTree.

Installation

Plugin Mode

  1. Upload option-tree to the /wp-content/plugins/ directory
  2. Activate the plugin through the Plugins menu in WordPress
  3. Click the OptionTree->Documentation link in the WordPress admin sidebar menu for further setup assistance.

Theme Mode

  1. Download the latest version of OptionTree and unarchive the .zip directory.
  2. Put the option-tree directory in the root of your theme. For example, the server path would be /wp-content/themes/theme-name/option-tree/.
  3. You must deactivate and/or delete the plugin version of OptionTree.
  4. Add the following code to the beginning of your functions.php.
/**
 * Required: set 'ot_theme_mode' filter to true.
 */
add_filter( 'ot_theme_mode', '__return_true' );

/**
 * Required: include OptionTree.
 */
require( trailingslashit( get_template_directory() ) . 'option-tree/ot-loader.php' );

For a list of all the OptionTree UI display filters refer to the demo-functions.php file found in the /assets/theme-mode/ directory of this plugin. This file is the starting point for developing themes with Theme Mode.

Frequently Asked Questions

Is there a demo theme I can install?

There sure is, and I'm glad you asked. Download and activate the OptionTree Theme and get some experience setting up OptionTree on your own with detailed directions and tips.

I get errors or a blank screen when I activate the plugin. What's the deal?

The most likely scenario is your theme already has OptionTree installed in Theme Mode. And since the plugin and theme version can't both be active at the same time without the sky falling on your head, your site has decided to throw in the towel. If that's not your issue, open up a support request and we'll figure it out together. UPDATE: As of OptionTree 2.4.0 the plugin version will not conflict with the Theme Mode version if they are both 2.4.0 or higher.

Screenshots

Changelog

2.7.3

2.7.2

2.7.1

2.7.0

2.6.0

2.5.5

2.5.4

2.5.3

2.5.2

2.5.1

2.5.0

2.4.6

2.4.5

2.4.4

2.4.3

2.4.2

2.4.1

2.4.0

2.3.4

2.3.3

2.3.2

2.3.1

2.3.0

2.2.3

2.2.2

2.2.1

2.2.0

2.1.4

2.1.3

2.1.2

2.1.1

2.1

2.0.16

2.0.15

2.0.14

2.0.13

2.0.12

2.0.11

2.0.10

2.0.9

2.0.8

2.0.7

2.0.6

2.0.5

2.0.4

2.0.3

2.0.2

2.0.1

2.0

1.1.8.1

1.1.8

1.1.7.1

1.1.7

1.1.6

1.1.5

1.1.4

1.1.3

1.1.2

1.1.1

1.1

1.0.0

Upgrade Notice

2.7.0

All custom setting types must use the ot_validate_setting_input_safe filter to sanitize user input data. OptionTree will attempt to sanitize the data, but data loss could happen with custom setting types when saving — so please update them. Additionally, please install OptionTree on a test server, or backup your database, before upgrading your live site. This version contains breaking changes!

2.3.0

As with each major release, please install OptionTree on a test server before upgrading your live site.

2.1.4

If you're not the developer of this theme, please ask them to test compatibility with version 2.1 before upgrading. If you are the developer, I urge you to do the same in a controlled environment.

2.0.16

There was an issue with the upload option type's JavaScript not allowing anything other than images to be sent to the editor. This urgent issue is now fixed and why this version is light on changes.

2.0.12

The plugin has undertaken a complete rebuild! If you are not the theme developer, I urge you to contact that person before you upgrade and ask them to test the themes compatibility.

1.1.8.1

Removed get_option_tree() in the WordPress admin area due to theme conflicts.

1.1.8

Added Typography, Background, & CSS option types. Lots of way to extend them, as well.

1.1.7

Lots of additions, none critical just fun. Added layouts & upload to slider. As well, started including action hooks for extending and integrating with other plugins.

1.1.6

Added theme integration for developers. It's now possible to have a default XML file included in your theme to populate the theme options and hide the settings and docs pages. Read more about this in the plugins built in documentation.

1.1.5

Having multiple sliders caused a naming collision in the JavaScript and is now fixed. Upgrade ASAP to have multiple sliders available in the UI.

1.1.4

Fixed the returned value of the get_option_tree() function when $is_array is set to false. If you have created any slider or measurement option types please read the updated documentation for examples on how to use them in your theme.