=== Shortcodes Generator === Contributors: fightthecurrent Donate link: http://bit.ly/QhXuBc Tags: shortcodes, theme, generator, develop Requires at least: 3.0 Tested up to: 3.8.1 Stable tag: 1.2.1 A plugin to generate shortcodes and a corresponding button in the WordPress visual editor. Wicked! == Description == Adding shortcodes to the Visual Editor can be a pain in the buttocks. Not anymore. Now, you can add shortcodes and a button to the editor as simply as using an array and this plugin. [How neat is that?](http://bit.ly/Pvj4ie) You can check out more details on how to use the plugin, please visit [the plugin site.](http://fightthecurrent.org/plugins/shortcodes-generator) Note: This plugin requires at LEAST PHP 5.3. If you're not sure what version of PHP you're using, consult your host. == Credits == Some icons by [Yusuke Kamiyamane](http://p.yusukekamiyamane.com/). All rights reserved. Licensed under a [Creative Commons Attribution 3.0 License](href="http://creativecommons.org/licenses/by/3.0/). == Installation == 1. Upload `shortcodes-generator.zip` to the `/wp-content/plugins/` directory and unzip it 2. Activate the plugin through the 'Plugins' menu in WordPress 3. Drag the `shortcodes` folder inside `shortcodes-generator` to the root of your theme 4. Create your shortcode via arrays. For more details, check out the FAQ, or visit [the plugin site.](http://fightthecurrent.org/plugins/shortcodes-generator) 5. That's it! Enjoy! == Frequently Asked Questions == = So how do I add the shortcodes, anyway? = Well, after you've moved the `shortcodes` folder to your theme, open up `shortcodes/array.php`. The simplest one you can make would look like this: $shortcodes['button'] = array( 'shortcode' => 'button' ); That would create a shortcode that looks like this: `[button]` Then, for every shortcode you wish to add, just repeat `$shortcodes['shortcode']` with the details filled in! The template is as follows: $shortcodes['name'] = array( 'shortcode' => '', 'function' => '', 'tag' => '', 'selectable' => 0 'atts' => array( 'name', 'name2' ), 'children'=> array( 'child' => array( 'shortcode' => '', 'function' => '', 'tag' => '', 'selectable' => 0 'atts' => array( 'name', 'name2' ), ), ) ); = This seems too simple. What if I want more control? = To use a specific function along with the short code, all you have to do is pass `'function' => 'function_name'` as one of the paramaters for the array. Here's an example: $shortcodes['button'] = array( 'shortcode' => 'button', 'function' => 'cur_button_shortcode', 'selectable' => 1 'atts' => array( 'class', 'color' ), ); The shortcode will now use `cur_button_shortcode` as the function to run for the shortcode. The shortcode will look like this: [button class="" color""][/button] If you want to define some default parameters, just change atts to this: 'atts' => array( 'class' => 'small', 'color' => 'green' ) It will produce this output: [button class="small" color"green"][/button] Want to be able to select text and have the shortcode wrap around it? Just pass `'selectable' => 1`. I will eventually add a ThickBox dialogue so that people can have default selections picked out for them, and actually have more of a UI. But this will do for now. = Is it possible to embed into themes? = Sure is! To do that, move the plugin file into your theme and include this code in your functions.php file: add_action( 'after_setup_theme', 'cur_shortcodes_theme_setup'); function cur_shortcodes_theme_setup(){ // We're assuming the plugin directory is located in // /wp-content/themes/themename/shortcodes-generator/ define( 'CSG_URI', get_template_directory_uri() . '/shortcodes-generator/' ); require_once 'shortcodes-generator/cur-shortcodes-generator.php'; $csg = Cur_Shortcodes_Generator::get_instance(); } It'll take care of the rest! == Changelog == = 1.2.1 = * Added CSG_URI to more easily embed plugin into themes = 1.2 = * BREAKING CHANGE: Changed params to atts in shortcode definition array * Added cur_shortcode_atts so as to reduce repitition of shortcode attribute definitions. There was too much repition across array.php and functions.php * Updated plugin to singleton pattern. Use Cur_Shortcodes_Generator::get_instance() to retreive instance of the class. * Updated example array and functions = 1.1.1 = * fixed error where functions weren't required in the correct order = 1.1 = * editor_plugin.js is now stored in the theme's shortcodes directory. = 1.0.2 = * Fixed error where child shortcodes weren't being generated correctly. = 1.0.1 = * Fixed error where functions weren't being included. * Fixed issue where $tags wasn't being unset. * = 1.0 = * Initial Release