After searching for a method to hide content on our own site’s sidebar we found that most of the solutions involved using widgets (which often provide less functionality compared to their direct function call equivalents). As well, they often make use of Scriptaculous, jQuery or mooTools to provide effects, but often add complexity and bloat.
- Individual content states are saved via cookies (switchable via an options screen)
- URL and parameter options to override cookie options
- Ability to specify own icons for collapsing/revealing content
- Title can change too depending on current content state
- Option to show title seperately
- Support for Do Not Track
- XHTML compliant output*
- Fully internationalized ready for translations
For more information and advanced options please read the “Other Notes” tab.
- Use of the short code, depending on how it’s used, can break this.
Using the Short Code
The short code is
[reveal] and it can be used in one of two ways – either using the shortcode twice or by closing it, as usual. For example…
[reveal heading="<h2>%image% Some Blah Content Below</h2>" id="id1"]Blah, blah, blah content here[reveal]
Or you can specify it as…
[reveal heading="<h2>%image% Some Blah Content Below</h2>" id="id1"]Blah, blah, blah content here[/reveal]
The following parameters are valid…
- heading – This is the heading that you click on to hide/reveal the content below. It can contain HTML. If you wish a button image to appear within the heading then you need to add
%image%within the heading, where you wish it to appear. A default button is included with the plugin, but this can be overridden using further parameters. Additionally, if you wish the heading text to change as the content is hidden or revealed then you can specify the title text as
%title%. There are 2 further parameters where you then specify the 2 pieces of text.
- id – You can have multiple reveals on the same page but each needs its own unique ID – keep this short.
- default – Do you want the content to be hidden or shown by default? Specify
showto indicate (default is
hide, although you can change this in the options screen).
- folder – If you wish to supply your own images you can specify your own folder here – see the appropriate section below for more details. The old parameter of
img_urlcan still be used.
- ext – Use this to specify whether you wish to use PNG or GIF images.
- cookie – How many hours to retain the cookie for – see the instructions on cookies for further assistance.
- title1 – If you wish to switch the title text, dependant on states, then this is the text that appears when the text is hidden.
- title2 – This is the text that will appear when the text is shown.
Important: Make sure you add this using the html/code editor in WordPress, not the visual editor. If you use the visual editor it will not work, as the actual code you entered will be seen on the page, instead of being processed by the script.
Embedding content reveal within another
It is possible to add one content reveal section within another. Here is an example of how to do this – note the use of the end tags to achieve this.
[reveal heading="<h2>%image% Some Blah Content Below</h2>" id="id1"]Blah, blah, blah content here[reveal heading="<h3>%image% Some More Blah Content Below</h2>" id="id2"]Blah, blah, blah more content here[reveal][/reveal]<h3>Change the default icons</h3>
folder may be used to specify a different folder in which you can add your icons. The icons must be named image1 and image2 and can be either .gif or .png images.
You can either specify a full URL or a folder name. In the latter case, it will be assumed the folder is within
wp-content/uploads/content-reveal/. The advantage of the latter is that images in this folder will be omitted from Jetpack’s Photon function – please see the next section for details on this.
Use of Photon
The default icons are automatically omitted from Photon and also any icons added to
wp-content/uploads/content-reveal/. If you provide icons from any other folder and use Photon then you may find they don’t display correctly.
Show title separately
If you wish to show the title separately from the hidden/reveal text then an alternative shortcode is available, named
reveal_link. It uses the same parameters as before.
To get this to work you must specify your text as usual BUT give it a heading of “noheading”. For example…
[reveal heading="noheading" id="id1"]Blah, blah, blah content here[/reveal] [reveal_link heading="<h2>%image% Some Blah Content Below</h2>" id="id1"]
This is the same example as previously uses BUT the text to hide/reveal appears BEFORE the title.
In previous use the ID does not need to be specified – if it isn’t, one will be generated automatically. However, for this method to use both IDs must match and, hence, you must specify them.
Note: WordPress does not support square brackets in shortcode parameters so you cannot, for instance, use square brackets in the title when using the shortcode option. This is a limitation of WordPress and not this plugin.
URL parameter to change the default state
A URL parameter named
acr_state can be used to override all content on the page which uses this plugin. There are 3 possible values –
off. The latter will cause the plugin to output as if it wasn’t active – all content will be shown and toggle images will be suppressed.
In the Administration menu you should find an option under “Settings” named “Content Reveal”. Within here you can switch the cookies on and state how long they should be stored for.
Additionally, you can control cookies on a case-by-case basis via a new parameter named
cookie. The value should be set to the number of hours you wish the state to be stored for. To switch cookies off, specify this as zero. For example, with the shortcode you may put…
[reveal heading="<h2>%image% Some Blah Content Below</h2>" id="id1" cookie="3"]Blah, blah, blah content here[reveal]
This would save the cookie for 3 hours.
To assist with recent ICO regulation in the UK with regard to cookies a number of additional features exist…
- Setting the cookie time to zero will cause any existing cookies to be deleted and no cookies will be created
- All cookies for this plugin can be overridden for a page via the URL. Simply append a parameter of
acr_cookies=to the URL, followed by the number of hours (0 to switch off). e.g. for my site a URL of
artiss.co.uk?acr_cookies=0would cause all the current user’s cookies for this plugin to be deleted
[acr_cookies]exists. An example of output may be
The cookie is named
x is the ID of the given content section.
As previously mentioned in the Administration menu there is an option under “Settings” named “Content Reveal”. Apart from the cookie settings, you can also set the default state for showing or hiding content. You can also decide whether to switch on or off the editor button – this is an additonal button that appears in the visual editor and, when pressed, creates a default example of the shortcode.
Reviews & Mentions
Content Reveal can be found and installed via the Plugin menu within WordPress administration. Alternatively, it can be downloaded and installed manually…
- Upload the entire
simple-content-revealfolder to your wp-content/plugins/ directory.
- Activate the plugin through the ‘Plugins’ menu in WordPress.
- That’s it, you’re done – you just need to add the shortcode!
- I can’t get a shortcode within the Content Reveal shortcode to work
Sorry, shortcodes within the hide/show text cannot be processed.
- The output doesn’t validate correctly
This will probably be if you are generating your output using the shortcode.
However, this is under investigation and, it is hoped, will be fixed in WordPress in the future. When this happens I’ll be able to update this plugin to use CDATA and to play nicely with validators.
- The links to click on are appearing but clicking on them doesn’t do anything
Check in your Writing settings in Administration that you don’t have “WordPress should correct invalidly nested XHTML automatically” ticked, otherwise WordPress may incorrectly attempt to “fix” the output of the plugin.
- How can I get all the content to display so that it can be printed?
Using the URL parameter
acr_stateyou can re-display your page with all content hidden, revealed or with the plugin switched off. See Other Notes for further details.
- How do I add quotes to the heading?
Because quotes (single or double) are used to specify the shortcode parameter – in this case the heading – you can’t then use them use them for the heading text. Well, you can – whichever one you use for your shortcode parameter, you can use the other within your heading. So, this is fine…
[reveal heading="<h2>%image% Some 'Blah' Content Below</h2>" id="id1"]Blah, blah, blah content here[reveal]
As is this…
[reveal heading='<h2>%image% Some "Blah" Content Below</h2>' id="id1"]Blah, blah, blah content here[reveal]
Alternatively, particularly if you want to use both quote types within your heading, you can use ASCII instead. For example…
[reveal heading="<h2>%image% \x27Single quotes\x27 \x22double quotes\x22</h2>" id="id1"]Blah, blah, blah content here[reveal]
Installing this plugin makes my wordpress installation notably slower.
Thanks for this. Works well. I am pretty basic and it is even working within the page builder I am using. I haven’t explored the parameters much yet, but will be using different images extensively. Good one.
I like it very much! This is a great plugin with much required functionality to custom hide/show content anywhere in WordPress – not only on the posts or pages, which is very important.
Also very efficient, fast and dedicated support! David solves issues and ready to add features rather fast if it is feasible.
Indeed a great plugin, thank you, David!
Simple to use and flexible (both available as function and shortcode). Very practical! After searching and troubleshooting for hours on other plugins, this one finally gave me what I wanted: the possibility to add my own show/hide icons, and place them where I wanted (below the content). For those of you that want the same thing, here is the shortcode:
[reveal heading=”noheading” id=”id1″]your content here[/reveal]
[reveal_link heading=”%image%” id=”id1″ img_url=”path to your images/”]
Make sure the images are called image1.gif (show) and image2.gif (hide) and put them in the img_url path you specified above.
Contributors & Developers
“Content Reveal” is open source software. The following people have contributed to this plugin.Contributors
- Maintenance: Updated branding, inc. adding donation links
- Enhancement: Suppressed Jetpack’s Photon from trying to handle the images from this plugin
- Enhancement: Added a new user image folder option
- Enhancement: You can now specify from the options screen whether you want content to default to being hidden or shown
- Maintenance: Updated branding – we’re now Coded Art!
- Maintenance: Added a domain path
- Maintenance: Removed function calls. Did anybody ever use these?
- Maintenance: Reduced the number of included files by concatonating the existing ones
- Maintenance: Updated the various path functions to reduce hard coding and to drop deprecated functions
- Maintenance: Brought the options screen up to WordPress standard
- Maintenance: Added validation to the options screen
- Maintenance: Correct ENQUEUE of script so that it works with SSL sites
- Maintenance: Admin screen headings compatible with WP 4.3
- Maintenance: Added text domain to plugin meta and corrected text domain name across the plugin
- Bug: Editor button now works again!
- Maintenance: Corrected support forum link
- Maintenance: Removed sub-menu and moved options to Settings menu
- Maintenance: Corrected plugin meta links because of above changes
- Maintenance: Removed feature pointer
- Maintenance: Removed deprecated functions
- Bug: Fixed incorrect include
- Enhancement: Will now work in Administration screens, allowing other plugins to access it
- Enhancement: Now appears in Adminstration as own main menu option, rather than under “settings”. Both options and support sub-pages exist
- Enhancement: If you have the Plugin README Parser plugin installed then a new sub-menu will display the README instructions
- Enhancement: Brought menu and help screen code up-to-date including adding feature pointer
- Enhancement: Added shortcode to output cookie storage length
- Enhancement: Nested shortcode now allowed so a shortcode can be used with the Content Reveal shortcode
- Enhancement: Complete re-write of cookie functionality to combine all saved information into one cookie per saved section (it was previously four!). However, I’ve not added backwards compatibility to keep code size to a minimum and to reduce the risk of the extra code causing issues.
- Enhancement: Converted spaces to underscores in IDs
- Enhancement: Added internationalisation
- Bug: Fix issue where initial state of title, if alternative titles are being used, was not being set
- Maintenance: Add suffix to files and improve code quality (including resolution of any known debug errors)
- Maintenance: Removed the dashboard widget
- Maintenance: Removed the sponsorship
- Enhancement: Updated dashboard widget & added sponsorship to options page
- Enhancement: Improved editor button icon
- Bug: Fixed parameter passing bug in function call
- Bug: Corrected URL in HTML comment
- Enhancement: Modified default icons – now black & white to suit more sites
- Enhancement: Added button to editor which can be toggled in new option screen
- Enhancement: Added parameters and URL to allow overriding of cookie option
- Enhancement: User can now specify the title separately, allowing option to hide/reveal to be placed elsewhere
- Enhancement: Improved shortcode method
- Enhancement: New URL parameter which allows all sections to be shown/hidden en-masse. Can also switch off plugin operation using the same
- Enhancement: If user doesn’t specify an ID one will be generated for them
- Maintenance: Renamed from Simple Content Reveal to Artiss Content Reveal
- Maintenance: Brought all code up to current standards and checked via WP_DEBUG
- Enhancement: Improved number of CLASS’ used to assist with CSS styling
- Bug: Fixed bug where users own image folder was not working
- Bug: Fixed version number reporting
- Bug: Fixed critical bug that prevented image from working with Internet Explorer
- Enhancement: Now using
wp_enqueue_scriptto handle script in header
- Initial release