WP-SNAP! WordPress Plugin
What Is WP-SNAP!?
WP-SNAP! (WordPress System for Navigating Alphabetized Posts) creates an alphabetical listing of post titles on a Category or Page template file. Navigation through the listings WP-SNAP! generates is accomplished using the alphabet itself. (For example, if a site visitor clicked on the letter D, any post titles that began with that letter would be showcased.) WP-SNAP! will work on any Wordpress 2.1.x or higher site, but is particularly useful managing glossaries, indexes, reviews, or directories. Since it is said that a picture is worth a thousand words, here’s a screenshot of WP-SNAP! in action:

WP-SNAP! offers three different navigational styles and integration with both custom permalinks and the Wordpress loop. Plugin options can be managed both site-wide and on the template itself with results either restricted to one category or broadened to include child categories as well. The clever web developer should have no problem seamlessly integrating WP-SNAP! into their latest project. Options have also been added to allow the customization of css class names and the appearance of html mark-up.
How To Configure WP-SNAP!
- Click on the link to the right to download the WP-SNAP! WordPress Plugin, extract it and upload it to your WordPress Plugins folder on your site.
- Activate the Plugin from the WordPress Administration Plugins tab.
- Edit the category templates your Theme uses, such as category.php, and add the following code above the start of the Wordpress Loop:
<?php if (function_exists('wp_snap')) { echo wp_snap(); } ?> - Copy the CSS example below and paste it into your WordPress Theme stylesheet (you can style it better later).
- Upload the files and refresh the category page on your WordPress blog to see it in action.
- For further customization, go to the Plugins > WP-SNAP! panel and change the alphabetical structure to something different and click Update Options. You may also change the categories to be displayed and the menu navigational structure by passing variables as a query-string to the plugin like so:
<?php if (function_exists('wp_snap')) { echo wp_snap('arguments'); ?>There are currently four possible arguments: Category (’cat’), Include Category Children (’child’), Navigational Menu Style (’menu’), and First Load (’firstload’). Category must equal a category number from your WordPress installation, Include Category Children must equal true or false as to whether to include child categories (the default value is false), Navigational Menu Style must equal a number between 1 and 3 (corresponding with the three navigational styles offered in the admin options panel), and First Load must equal ALL, NONE or RECENT and will affect how WP-SNAP! displays posts/tags when it is first called on a template. Note that if RECENT is selected, the number of recent posts/tags to display can be controlled from the admin options page. For instance, to create a navigational menu for all posts in category 15, including child categories, using the default menu navigational style, and displaying recent posts on first load, WP-SNAP! would be called like this:
<?php if (function_exists('wp_snap')) { echo wp_snap('cat=15&child=true&firstload=recent'); } ?>To create a navigational menu for the current category, excluding child categories and using navigational menu style 3, WP-SNAP! would be called like this:
<?php if (function_exists('wp_snap')) { echo wp_snap('menu=3'); } ?>To create a navigational menu for all categories, using default navigational menu style, WP-SNAP! would be called like this:
<?php if (function_exists('wp_snap')) { echo wp_snap('cat=all'); } ?> - Test it out and enjoy!
Note: For the Plugin to work, you must have access to edit your WordPress Theme files. You must also have a category.php template file in your WordPress Theme. If you do not, you can create one following the instructions on the WordPress Codex for creating a category template file.
CSS Styling
It should be noted that this plugin does not inject any css styling information, so it is up to the user to add the appropriate class information to the Wordpress Theme css stylesheet. Here is some sample code to get you started:
ol.snap_nav {
display: inline;
float: left;
clear: both;
list-style: none;
}
ol.snap_nav li {
display: block;
float: left;
padding: 0 2px 10px 0;
}
ol.snap_nav li a {
font-weight: bold
}
ol.snap_nav li.snap_selected a {
cursor: text;
}
ol.snap_titles {
clear: both;
display: block;
border: 0;
list-style: none;
}
Feedback
This plugin thrives on user feedback. Praise, ideas, and bug reports are all welcome. Use the comment form below to let me know what you think. Please keep in mind that I am not paid to work on this plugin and that delays between updates can and will occur. Please do not post questions about when the next update will be released. I appreciate your enthusiasm, but your comment will be deleted. If there is a significant delay between releases, I try to post a timeframe of when the next update can be expected.
Thank You
My thanks to Lorelle VanFossen for reviewing my plugin and allowing me to reuse her instructions on this page.
Change Log
- 06.2008.10 Version 0.8.5
- Added international language file support
- Changed the method for passing data to the plugin
- Tracked down bugs
- 06.2008.08 Version 0.8.4
- Made the plugin compatible with Wordpress’s new tagging system
- Corrected problem with listing recent posts
- 04.2008.03 Version 0.8.3
- Fixed a small — but significant — typo
- Moved the administrative submenu to plugins.php
- Added the ability to display All/None/Recent posts on first load
- 12.2007.02 Version 0.8.1
- Fixed incompatibility with PHP 4
- 11.2007.28 Version 0.8
- Added support for fancy URLs
- 10.2007.04 Version 0.7.3
- Fixed error with Wordpress 2.3 database call
- 09.2007.28 Version 0.7.2
- Made database call compatible with Wordpress 2.3
- 06.2007.02 Version 0.7.1
- Fixed error with database call
- 05.2007.30 Version 0.7
- Fixed issue preventing the display of more than 10 posts
- Fixed issue with sorting uppercase/lowercase post titles
- Restored ability to pass a category to the plugin
- Added ability to include category children in returned results
- Added ability to display all categories
- Added ability to change navigation style when calling the plugin
- Added support for Gengo (hopefully)
- 05.2007.12 Version 0.6.2
- Restored the ability to exclude first words from being alphabetized
- Cleaned-up some instructional text in the options menu
- 01.2007.21 Version 0.6.1
- Fixed a minor error with the $wp_snap_category variable
- 01.2007.20 Version 0.6
- Rebuilt the entire plugin to be better, stronger, faster
- Changed how results are displayed; plugin now plays well with the Wordpress loop
- Removed option to pass a category number directly to the plugin, making it incompatible with Pages (feature to return if requested)
- Added nonce protection to the admin options panel
- Added option to group posts beginning with a number under ‘#’
- Fixed unencoded ampersands
- 09.2006.20 Version 0.5.4
- Updated WP-SNAP! to ignore posts with post-dated timestamps
- 08.2006.02 Version 0.5.3
- Fixed an error that affected certain navigational menu styles
- 08.2006.01 Version 0.5.2
- Updated alphabetization to accomodate accent marks; still needs refinement
- Fixed a logic error with the post title sort loop
- 06.2006.07 Version 0.5.1
- Squashed some bugs in the new ignore filter
- 06.2006.06 Version 0.5
- Words can now be filtered from the alphabetization process from the WP-SNAP! admin options menu
- 06.2006.01 Version 0.4
- Added ‘#’ to catch category entries beginning with non-alphanumeric characters
- Tweaked the code here and there
- Fixed the WP-SNAP! plugin url on the admin options page
- 05.2006.13 Version 0.3.1
- Fixed the url structure of the navigation when used on a Page
- Added ‘apply_filters’ to the post excerpt
- 05.2006.08 Version 0.3
- Plugin no longer displays excerpts for password protected posts, if the viewer is unauthorized
- If there is no excerpt for a post and excerpts are turned on, plugin now creates an excerpt from the post content
- Fixed a typo
- 03.2006.29 Version 0.2
- Added the ability to pass a category number directly to the plugin, making WP-SNAP compatible with Pages
- 03.2006.29 Version 0.1
- Initial Release
Comments
Download The Latest Release
View The Code
Make A Donation
If you find this plugin useful, please consider making a donation. It's a great way to say “thank you” for all the hard work that has gone into its development.
Frequently Asked Questions
-
When will the next version of your plugin be released?
As soon as I find the time, I will update the plugin and release a new version. I understand how frustrating it can be to be so close to having the perfect Wordpress installation only to be held up by a plugin that just needs a little more work to be exactly what’s needed. However, please remember that I am not paid write this plugin and that, like you, I have a family and responsibilities that extend far beyond this little piece of code. I really appreciate your enthusiasm, but if you wish to reap the benefits of my freely given labor, then you must be satisfied with doing so on my timetable. Otherwise, if you simply cannot wait, you are more than welcome to modify and extend the capabilities of my plugin yourself.
-
Why do the results WP-SNAP! returns look funky? Why is it numbering every item?
A web page is composed of two parts: a document containing HTML code and a document containing styling code (known as a Cascading Style Sheet, or CSS for short). Because WordPress templates can look so drastically different from one another, I have intentionally avoided injecting any CSS information into WP-SNAP! However, I have included several ID selectors (that can even be modified from within wp-admin) that should allow you to style WP-SNAP! to look however you’d like. Those numbered lists? You can turn them off. I do ask that you try to refrain from asking me CSS related questions — while I would love to help you, my time is limited. If you would like to learn more about CSS, I suggest visiting A List Apart or Vitamin.
-
I tried using your plugin, but it just won’t work. What am I doing wrong?
Unfortunately, I don’t have the time to troubleshoot every installation of this plugin. However, if you believe you have discovered a bug, I encourage you to post a comment to my website and I will reply as soon as I can. I do request that you be as specific as possible when asking for assistance. Please provide a detailed account of the steps you took that resulted in the error you encountered so that I can try to reproduce it and more quickly deduce how to fix it.
Hi there, great plugin (and very important for my site).
My problem is this : Whenever I do, when I am on a category, the alphabet only links the letters in that category (same if I am on an archive post, in which only one letter is linked)…
Can you help me on this ?
Thanks in advance !
February 25th, 2007 at 4:49 pm
Christophe — I’m not sure that I understand your problem but WP-SNAP! only organizes content within the category that you call it. It does not organize all of your content site-wide.
February 25th, 2007 at 4:54 pm
I see…
Site-wide organization exactly is what I’m looking for, so it’s too bad for me…
I’ll try and find that plugin, hoping it exists :)
Nice work anyhow
February 25th, 2007 at 5:01 pm
just make a category called “everything” or “all” or something and make it the default category. Then every post you add will be in the “all” category, plus any other category you add it to. Then just call the wp-snap function from within the “all” category template.
You can then see al alphabetised view of every post on the whole site.
hope this helps.
the plugin is great and the setup instructions are clear and concise, keep up the good work and thanks for this great plugin.
March 19th, 2007 at 3:31 am
Nice Plugin, it´s right i can make a wordpress glossary with
sections filmstars, musicstars and celebritystars and have on every category a own glossary?
March 19th, 2007 at 4:12 am
Crazylife — Yes, each section can have its own glossary.
ben — Thanks for the tip. I’m sure some users will find that very helpful!
March 19th, 2007 at 9:34 am
Great plugin! But I have a problem with it, I put the plugin in a page to show only post of a certain category (Ficha_artistas) and I put this code:
It works, show the post titles when I click in the initial corresponding but in the same initial they aren´t order by alphabetical order, but it show order by appearance. p.e.
Beyoncé
Basement Jaxx
Busta Rhymes
Bad religion …and so
Is it possible to change this?
Many thanks
March 26th, 2007 at 5:54 am
e-monk —
In order to display code, you will need to surround it with <pre><code>…code…</code></pre> tags.
WP-SNAP! alphabetizes all post titles so, obviously, something you are doing is rearranging them.
March 26th, 2007 at 1:54 pm
Excellent Plugin, except for one small problem: I’ve created a glossary with multiple posts from a-z. Everything shows up correctly, except that when i click the link to go to “E-H” i get the following error:
CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers.
Help? :-)
Thanks in advance
April 2nd, 2007 at 8:18 am
Boy in a Bubble — According to Microsoft and others, the problem you are experiencing is because you did not include a content-type in your html code. E.g.: <meta http-equiv=”content-type” content=”text/html; charset=UTF-8″ />
April 2nd, 2007 at 8:30 am
That’s odd…i do have UTF-8 Encoding on the page
April 2nd, 2007 at 9:48 am
I dunno, but there are lots of posts on the internet with regards to the CGI error that you encountered and my understanding is that it’s a server/PHP bug that can be resolved by declaring a content-type. Google it and good luck!
April 2nd, 2007 at 9:58 am
Great plugin! I’m having a couple of problems that i can’t seem to figure out though.
#1) For some reason post titles are being displayed first by uppercase and then by lowercase, making certain posts display out of proper alphabetical order. Example:
This is how it currently displays:
Blueprint
Butterfly
Copywrite78
Cormega
Cunninlynguists
DJ Brace
Deeskee
cLOUDDEAD
This is how it should display:
Blueprint
Butterfly
cLOUDDEAD
Copywrite78
Cormega
Cunninlynguists
Deeskee
DJ Brace
#2) I can’t figure out how to make the plugin ignore certain words from the start of post titles (i.e. The, the, etc…). From reading all the coments on this site it’s mentioned several times that there is an option for this ignore filter in the Admin options, but i do not see it. I also couldn’t find any “ignore” section when viewing the plugin code.
April 8th, 2007 at 8:41 am
David — Thank you! I will look into both issues as soon as I can. You are right, the ability to exclude first words from sorting has somehow mysteriously disappeared from the options page. I will get this fixed as soon as I can. As far as title sorting goes, I guess I never imagined that someone would have a word such as “cLOUDDEAD” in their post titles. More regular expressions fun! Er, yay. Hrm.
April 13th, 2007 at 12:51 pm
Hi, how do I get your plug-in only to work for my glossary page?
April 17th, 2007 at 10:37 am
Hi Nathan,
I’m attempting to use WP-SNAP! on a new site under development. I’ve installed the plug-in and incorporated it into a bare-bones category.php page. When I load the page, it renders your navigation and hyperlinks the three letters for which posts exist. When I click on one of the letters to see posts that start with that letter, it still displays all test posts regardless of the letter they begin with. It doesn’t appear that any filtering of posts is being done. At the moment, there are only three test posts in the system. Is this behavior by design because of having so few posts?
This is the relevant portion of category.php:
“>
April 17th, 2007 at 11:26 am
I am having a problem where the plugin is only displaying recent posts within each letter category.
For example, have a look at http://www.goodbeeronline.co.uk - I use the plugin to sort the beer reviews by County and Type. I have an ‘All review’ category which every beer is tagged under. As you will see, I have 21 ‘All beers’ at the moment, but the plugin only shows a few of these, and allows you to view more if you click ‘Previous entries’.
It seems like the problem has something to do with the posts being Archived and then the Plugin is not displaying the posts which have been archived from a previous month.
Can you please help me how I would show all poosts under each letter, regardless of what month the post was created?
May 9th, 2007 at 5:35 am
William — Please see step #4 in “How To Configure WP-SNAP!” above.
Michael — Obviously, your code did not show up, so I can’t see what your issue is. You should be able to correct this by inputing your code in this way: <pre><code>…code…</code></pre>. The plugin does sort and filter posts, so I’m not sure what’s going on in your situation.
All — I’m under some tight deadlines right now, but I hope to steal a Saturday soon and push out a bug fix to the issues that have been noted above. Thanks for your patience.
May 9th, 2007 at 6:57 am
All — I’ve updated the plugin. It is now once again possible to exclude first words/letters/symbols from being alphabetized. I also looked into two other issues and I was not able to resolve either to my satisfaction:
1. David’s issue, in which “cLOUDEAD” is not properly alphabetized, is still an issue. I’m not sure what’s going on here nor how to fix it. For now, WP-SNAP! is not able to alphabetize words that begin with a lowercase letter followed by uppercase letters.
2. I don’t know if I overlooked this or if Wordpress made an internal change, but using query_posts in any loop that uses WP-SNAP! fucks everything up. So, the only way to get WP-SNAP! to work correctly and display more than 10 posts is to make a site-wide change in your administration panel under Options > Reading > Blog Pages > Show At Most to “-1″. You will now have to use query_posts for Wordpress Loops that should not show all posts. Sorry for the inconvenience.
Unfortunately, it looks like the only way to solve either of these issues is to basically rewrite the functions I’m currently calling (natsort & $wp_query->posts). That will not be a fun day.
May 12th, 2007 at 1:22 am
Is there anyway to configure the Navigational style within the page template?
I’m sorting the same data set through two different filters, one (Category) returns a large number of results and the other (tag) returns a smaller number.
May 19th, 2007 at 12:45 am
Pages: « 1 … 7 8 [9] 10 11 … 18 » Show All
Leave a Reply