Pimping out WordPress
WordPizzle to the Shizzle, yo
I don't know what it is with me and having to bolt on every, sometimes unnecessary, extra to software that allows me to do it. It's no different with WordPress and plugins. Same goes with Firefox and extensions (that's gonna be another post).
Sure most of it is for functionality, but a lot of it is because I like to tweak things to the point of death. But it does amaze me that so many people are happy with the base functionality that WordPress provides and instead concentrate on the visual customisation (which unfortunately seem to be mostly poorly ported versions of Kubrick[1]).
The big push that I got was having to customize client websites to bend WordPress beyond it's normally used for (a blogging tool) towards more of a full CMS. This exposed me to a wider range of plugins that would also cross-over into the blogosphere as well.
I will leave the focus on using WordPress for a CMS to another post (i'm trying to save up a list of topics I want to write about), and concentrate on listing the plugins that are in use on this site with reasons for choosing them. This gives me the opportunity to give "props" to the plugin developers, but also give an insight to others who may like what I have done here and want to get a handle on the behind the scenes approach.
This will probably be a long post, and I want to test out post pagination - so bear with me...
40 Plugins and counting...!
I used to hack the core files of WP to get the functionality more often than not because there was no other way to do it, but as the code base continues with development, more and more hooks have been introduced to the point where now, it is very rare to have to touch the core code. This means that developers can manipulate existing functions, and can create new ones that, well, plug in to the code base. The upside of this is that you don't have to worry about what files you edited when it comes time to upgrade. A further benefit of that separation is that you can edit the plugins themselves should they fall short of your expectations.
OK, the list:
- Advanced Admin Menus
The administration area of WordPress is pretty naf, especially when it comes to navigation UI. This plugin gives you quick and easy access to main and sub-navigation items, without having to click-click-click. A necessity until WP revamps the admin (which may still require such plug-ins if the preview is anything to go by[2]
Author: Andy Staines - AJAX Comments
Self explanatory, makes the comment area more usable - auto adding the comment without refreshing the page.
Author: Mike Smullin - Akismet
Comment spam blocker that comes with standard with WP. So far saved my site from close to 35,000(!!!) spam. Given those figures I can put up with the minor manual clean-up.
Author: Matt Mullenweg and Automattic - All in One SEO Pack
Probably the best of SEO plugins for WP, does what a lot of the others do combined. Manipulates the title tags, auto-sets Meta keyword and description tags.
Author: uberdose[3] - Angsuman's Multi-Page Plugin
Creates an admin button to make inserting the<!--nextpage-->easier - something that is sorely missing in the default code base.
Author: Angsuman Chakraborty and Taragana - Author Highlight
Allows a CSS class to be set if the blog author makes or replies to a comment.
Author: Jonathan Leighton - Better Feed
Comprehensive RSS/Feed enhancer that allows you to add content/copyright to your feed. Needs a bit of enhancement and some admin control - but still recommended.
Author: 'Ozh'[2] - BlogStats PCC
From the highly respected and informative Perishable Press site comes this plugin which more of an amalgamation of PHP functions that allows the blog-owner to pull the number posts, categories, comments etc etc.
Author: Jeff Starr - cforms II
By far the most comprehensive and impressive plugin that exists for WordPress (IMHO), let alone the rest of the contact forms. This plugin allows a comprehensive, yet simple, method of adding a contact form to your website. The help section alone must have taken days to write. Highly recommended!
Author: Oliver Seidel - Code Highlighter
Syntax highlighter for source code (PHP/XHTML/CSS etc). I admit this will be the first post to use this plugin as there's nothing worse than reading code inside a blog in plain text.
Author: Wongoo Lee - Configurable Tag Cloud
Based on the widget version (I personally don't like/use widgets) by Keith Solomon, this plugin extends the basic Tag Cloud that comes with WordPress. Soon to be launched for the public.
Author: Me! - Custom Query String Reloaded
Building on the work done by Matt Read, Moshu has extend this plugin that allows you to dictate through the admin panel how many posts to show based on criteria. Essential.
Author: Moshu - Days Since Birth
Simple function that calculates the number of days since the first post.
Author: Emma McCreary - Dean's Permalinks Migration
A life-saver of a plugin for those who want change their URL structure without loosing their link juice. Great stuff!
Author: Dean Lee - FeedBurner FeedSmith
Originally authored by Steve Smith, this plugin detects all ways to access your original WordPress feeds and redirects them to your FeedBurner feed so you can track every possible subscriber.
Author: FeedBurner - Full Text Feed
Additional plugin to stop feed's breaking up the post length (This post will it's first test)
Author: Ronald Heft, Jr. - Google Analyticator
Another gem from Ronald, this plugin takes the gruntwork out of placing your Analytics code in your site. There are others out there that do the same thing, but this one does it the way I like.
Author: Ronald Heft, Jr. - Google XML Sitemaps
This plugin will generate a sitemaps.org compatible sitemap of your WordPress blog which is supported by Ask.com, Google, MSN Search and YAHOO.
Author: Arne Brachhold - Gravatar
This plugin allows you to generate a gravatar URL complete with rating, size, default, and border options. My version is slightly hacked.
Author: Tom Werner - Gregarious
This interestingly named plugin allows easy sharing of posts via a range of Social Bookmarking websites or by email. See it in action on the side-bar of this post.[4]
Author: Ankur Kothari - JPF Link Pages
Provides options for multipage navigation that WP’slink_pagesfunction doesn’t, like choice of a separator, combining numbers and next/previous, and link on first page only.
Author: Joseph Fieber - Lightbox 2 Plugin
Auto-converting all linked images in a post, excerpt and even comments to lightboxed links.
Author: Kjell Bublitz - Live Comment Preview
Supply users with a live comment preview. Based on version 1.7 by Jeff Minard.
Author: Brad Touesnard - Most Commented
Retrieves a list of the posts with the most comments. Modified for Last X days — by DJ Chuang.
Author: Nick Momrik - Nicer trackbacks
Changes the display of trackbacks from […] Tracbackback text […] to something a little more readable.
Author: Rachel Cunliffe - Ping/Track/Comment Count
Functions that return or display the number of trackbacks, pingbacks, comments or combined pings recieved by a given post.
Author: Mark Jaquith - Maintenance Mode Plugin
Adds a splash page to your blog that lets visitors know your blog is down for maintenance. Logged in administrators get full access to the blog including the front-end.
Author: Michael Woehrer - ToDo
Lets you create and manage a todo list from inside the WP admin area, also allowing you to display this list on your site (as seen at the bottom of the About page on this site[5]
Author: Pravin Paratey - Twitter Tools
A complete integration between your WordPress blog and Twitter. Bring your tweets into your blog and pass your blog posts to Twitter.
Author: Alex King - WordPress Clean Archive
Display a nice ‘n clean archive table on your blog. Not active at time of writing this as I need to tidy up the archive footer before implementing.
Author: Bas Wenneker - WordPress Database Backup
On-demand backup of your WordPress database. Essential if you're paranoid about loosing your data!
Author: Austin Matzko - WordPress Heat Map
Template tags for a heat map of category links and archive links. Used here for the photoblog tag-cloud.
Author: Christoph Wimmer - WP-Footnotes
Allows the easy addition of footnotes to a post. Customisable through the admin area.
Author: Simon Elvery - WP-PageNavi
Adds a more advanced paging navigation to your WordPress blog. As seen on the archives.
Author: Lester Chan. - WP-Plugin List
Adds a more advanced paging navigation to your WordPress blog. As seen on the archives.
Author: Martin Wiso. - WP-RelativeDate
Displays relative date alongside with your post/comments actual date. Like ‘Today’, ‘Yesterday’, ‘2 Days Ago’, ‘2 Weeks Ago’, ‘2 ‘Seconds Ago’, ‘2 Minutes Ago’, ‘2 Hours Ago’.
Author: Lester Chan. - WP 2.3 Related Posts
Generate a related posts list via tags of WordPress 2.3
Author: Denis PaoPao - WP Admin Bar 2
Displays a links bar at the top of the page when logged in, bypassing the need to manually reach the admin area.
Author: Matt Read - WP Super Cache
Very fast caching and configurable module for WordPress. Based on WP-Cache by Ricardo Galli Granada.
Author: Donncha O Caoimh - Yet Another PhotoBlog
Probably the most important plugin of the site, allows you to use WordPress as a PhotoBlog. Extensive feature set and very configurable.
Author: Johannes Jarolim
Not all plugins are created equal!
The way I see it, there are plugins and then there are real plugins. The first are only functions or function sets that either hook into or manipulate either the code or the database of WordPress. Real plugins are the same, but they offer fully configurable options as part of the admin area. However, this is not to say that the plain plugins are any less important to the flexibility that they offer the website owner.
The previous list of plugins aren't the full story, some functions I have borrowed, tweaked and/or rewritten and placed in the functions.php file inside of the template, and are loaded as part of that template. Here are those functions:
function time_since($older_date, $newer_date = false){ // array of time period chunks ); // $newer_date will equal false if we want to know the time elapsed between a date and the current time // $newer_date will have a value if we want to work out time elapsed between two known dates // difference in seconds $since = $newer_date - $older_date; // we only want to output two chunks of time here, eg: // x years, xx months // x days, xx hours // so there's only two bits of calculation below: // step one: the first chunk $seconds = $chunks[$i][0]; $name = $chunks[$i][1]; // finding the biggest chunk (if the chunk fits, break) break; endif; } // set output var $output = ($count == 1) ? '1 '.$name : "$count {$name}s"; // step two: the second chunk if ($i + 1 < $j): $seconds2 = $chunks[$i + 1][0]; $name2 = $chunks[$i + 1][1]; // add to output var $output .= ($count2 == 1) ? ', 1 '.$name2 : ", $count2 {$name2}s"; endif; endif; return $output; } function get_parent_category() { global $cat; foreach ((get_the_category()) as $cato): if($cat==$cato->cat_ID): if($cato->category_parent==0): return $cat; else: return $cato->category_parent; endif; endif; endforeach; return $cat; } function get_random_photos($before=" <li>",$after="</li> ",$numPosts="4") { $randposts = get_posts('numberposts='.$numPosts.'&category_name=photos&orderby=rand()'); if ( $randposts ): foreach ( $randposts as $post ): setup_postdata($post); $start = $before.'<a href="'.get_permalink().'" title="Visit ‘'.the_title('','',false).'’">'; $end = "</a>".$after."\n"; endforeach; else: echo "Nothing found"; endif; } function seriocomic_redirect() { $thiscat = get_parent_category(); if ( ($thiscat == '27') && (!is_feed()) && (!is_category()) && (file_exists(TEMPLATEPATH . '/rhetoric.php')) ): load_template(TEMPLATEPATH.'/rhetoric.php'); exit; load_template(TEMPLATEPATH.'/'.$_GET['template'].'.php'); exit; endif; } add_action('template_redirect','seriocomic_redirect'); remove_action('wp_head', 'rsd_link'); remove_action('wp_head', 'wlwmanifest_link'); remove_action('wp_head', 'wp_generator'); }
The final word
Yikes, that took a lot longer to compile and write than I thought. Rather than trying to keep this page updated, I will add another plugin that will dynamically output the list of current plugins on it's own page.
If this sort of thing spins your trolley wheels then you might be interested in the following similar articles:
- Lists of your Favourite WordPress Plugins
- 300+ tools for running your wordpress blog
- 50 good WordPress plugin list
- 50 best plugins for power blogging
If you have a favorite plugin, or are an author of a plugin listed in this entry and would like to change a reference to your plugin, leave a comment and let me know.
[Updated: 4 Jan 08 - corrected usage of 'plug-in' to 'plugin' as per Lorelle's instructions, and minor errors.]
[Updated: 5 Jan 08 - added link to dynamic plugins list page]
- A theme authored by the illustrious Michael Heilemann that made it as the default for WP[^]
- WordPress 2.4 Admin preview at Weblog Tools Collection.[^][^]
- I couldn't find his/her real name[^]
- Active at the time of this post[^]
- ref:2[^]
Permalink to this entry.
- Published:
- 3rd January, 2008
- Last Updated:
- 1st June, 2008
- Tagged With:
- code, enhance, functions, pimping wordpress, plugins, seriocomic, wordpress
- Discuss:
- 2 comments so far on this entry.
Feel free to comment yourself, or trackback from your website.
- Rhetoric Navigation:
- « Rhetoric Reborn Rhetoric Update »
- Possibly Related:
2 comments and counting...
Jump to comment form | comments rss[?]