/Shortcodes-Generator

A plugin to generate shortcodes and a corresponding button in the WordPress visual editor. Wicked!

Primary LanguagePHP

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?

To check out more details on how to use the plugin, please visit the plugin site.

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. All rights reserved. Licensed under a Creative Commons Attribution 3.0 License.

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.
  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