Skip to content

Instantly share code, notes, and snippets.

@damiencarbery
Last active September 4, 2017 12:03
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save damiencarbery/e263977bb854a68c67c022e11d71cd43 to your computer and use it in GitHub Desktop.
Handy shortcodes for use on any WordPress site
<?php
/*
Plugin Name: Utility Shortcodes
Plugin URI: http://www.damiencarbery.com/2017/09/utility-shortcodes/
Description: Various simple but useful shortcodes.
Author: Damien Carbery
Version: 0.2
*/
function us_simple_shortcodes($atts, $content, $code) {
switch ($code) {
case 'nbsp':
case 'clear':
return '<p class="clear">&nbsp;</p>';
break;
case 'comment':
case 'hide':
return ''; // Return nothing because we want to hide that text.
break;
case 'code':
return '<pre>'.do_shortcode($content).'</pre>';
break;
case 'blockquote':
extract( shortcode_atts( array(
'id' => '',
'class' => '',
), $atts ) );
$id_code = '';
if (!empty($id)) {
$id_code = ' id="'.$id.'" ';
}
$class_code = '';
if (!empty($class)) {
$class_code = ' class="'.$class.'" ';
}
return '<'.$code.$id_code.$class_code.'>'.do_shortcode($content).'</div>';
break;
case 'iframe':
extract( shortcode_atts( array(
'src' => '',
'width' => '640',
'height' => '480',
'frameborder' => '0',
), $atts ) );
if (empty($src)) {
return 'iframe shortcode error: No &quot;src&quot; specified.';
}
return '<iframe src="'.$src.'" width="'.$width.'" height="'.$height.'" frameborder="'.$frameborder.'">'.do_shortcode($content).'</iframe>';
break;
// Form errors
// [error]This is the content[/error]
// Also use 'notice', 'info' or 'success'.
// See: http://blueprintcss.org/tests/parts/forms.html
case 'error':
case 'notice':
case 'info':
case 'success':
case 'todo':
return '<div class="'.$code.'">' . do_shortcode($content) . '</div>';
break;
// Use <span> instead of <div> for inline formatting.
case 'error-span':
case 'notice-span':
case 'info-span':
case 'success-span':
case 'todo-span':
return '<span class="'.$code.'">' . do_shortcode($content) . '</span>';
break;
// Hide content until users are logged in.
case 'private-info':
if( !is_user_logged_in() ) {
return '';
} else {
return do_shortcode($content);
}
break;
default:
return '';
}
}
add_shortcode('nbsp', 'us_simple_shortcodes');
add_shortcode('clear', 'us_simple_shortcodes');
add_shortcode('comment', 'us_simple_shortcodes');
add_shortcode('hide', 'us_simple_shortcodes');
add_shortcode('code', 'us_simple_shortcodes');
add_shortcode('blockquote', 'us_simple_shortcodes');
add_shortcode('iframe', 'us_simple_shortcodes');
add_shortcode('error', 'us_simple_shortcodes');
add_shortcode('error-span', 'us_simple_shortcodes');
add_shortcode('notice', 'us_simple_shortcodes');
add_shortcode('notice-span', 'us_simple_shortcodes');
add_shortcode('info', 'us_simple_shortcodes');
add_shortcode('info-span', 'us_simple_shortcodes');
add_shortcode('success', 'us_simple_shortcodes');
add_shortcode('success-span', 'us_simple_shortcodes');
add_shortcode('todo', 'us_simple_shortcodes');
add_shortcode('todo-span', 'us_simple_shortcodes');
add_shortcode('private-info', 'us_simple_shortcodes');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment