Content manage those little snippets of text that you need across your WordPress site and in widgets properly. Forget the text widget.
Here at interconnect/it we have a policy of developing client sites with the premise of “content manage everything!” That means the little notices on sites, minor widgets and so on should not only be content managed, but they should be easy for both an end-user and a developer to work with.
To that end, we developed Spots. This creates a custom post type that allows you to create widgets using a visual editor, whilst also giving developers an easy hook for the creation of content managable elements within a theme.
The plugin now uses caching in order to help ensure that the load on a typical site is kept to a minimum. Performance is important!
The plugin is prepared for translation, if you’d like to drop us a line about your translation you can contact us through our website.
Spots provides 2 template tags for developers to use shown below with their supported arguments.
icit_spot( $id_or_name, $template );
$id_or_name
: Required. A numeric ID or the name of a spot as a string.$template
: Optional. A string used in a call to get_template_part()
This template tag always echos out the spot.
icit_get_spot( $id_or_name, $template, $echo );
Same as the above with an extra argument:
$echo
: Optional. Defaults to false. A boolean to indicate whether to echo the spot content or just return it.You can use spots to replace boilerplate text in your themes. If you have areas in your themes where typically you would hard code the text you could use the following code:
<?php if ( function_exists( 'icit_spot' ) ) icit_spot( 'Copyright' ); ?>
The above code would output the contents of a spot titled ‘Copyright’. If the spot does not exist it will be created as a draft. Spots in draft mode are only visible to logged in users with editing capabilities.
The plugin will initially look for a file in your theme using the get_template_part()
function. If you have a file called spot.php
in your theme that will be the default template for all spots. The icit_spot()
function can take a second parameter for the template part to use for example:
<?php if ( function_exists( 'icit_spot' ) ) icit_spot( 'Copyright', 'copyright' ); ?>
The above code will make the plugin look in your theme folder for a file called spot-copyright.php
to use for the output. If not available it will fall back to spot.php
and if that is not available it will simply output the spot contents.
Use templates when you want to display a featured image from a spot or if you require some additional/alternative markup for the spot. Spots are just like posts, so in the templates you retrieve the contents of the spot using the_content()
just as would in the loop.
Basic spot template example:
<div class="spot"> <?php the_content(); ?> </div>
Spot template with featured image:
<div class="spot-with-image"> <?php if ( has_post_thumbnail() ) the_post_thumbnail( 'medium' ); the_content(); ?> </div>
There are many filters and hooks available to get even more out of spots so drop by the plugin homepage or use the forums if there is something you need to do with spots but aren’t sure how.
/spots/
to /wp-content/plugins/
directory.Spots has a built in caching system, a popular request when we first launched the plugin. This creates a problem when you edit the template files that spots use as we can’t detect changes without creating a database query.
Place the following code in your functions.php to turn off the cache:
define( 'SPOTS_CACHE_TIME', 0 );
NOTE: We only recommend doing this for your development environment however if your spots are dynamic or you use a site-wide caching plugin then leave the above definition in.
Yes indeed – in fact that was the first inspiration behind creating Spots – we felt the text widget was only suitable for use by people who knew HTML well. Spots gives you a visual editor, making this much easier to use.
You can, if your theme either has built-in support for Spots, or you’ve added the appropriate template tags.
The image will be used as you’ve input it – bear in mind that in certain locations this may not work well, or your theme may not have appropriate styling in place. In most cases it will work just fine, but do be careful not to insert images larger than the space you have available.
If you have a featured image, your theme can use this for display options. If your theme does not fully support Spots then featured images will have no effect and only the main content of the Spot will be displayed. See the developer notes for more information on adding templates to a theme to get the most out of spots.
overflow:hidden;
.spot_post_exists()
to only check the spots post type to avoid displaying other content of the same name.