I released my latest WordPress plugin, Kalin’s Easy Edit Links, about an hour ago (I used it to add the link earlier in this sentence) and I’m now in process of building my third WordPress plugin, which I’m calling, Kalin’s Post List. It is basically a shortcode that you can insert into a post or page (or function-calls you can insert into a theme) that will display a customized list of posts. Hopefully development goes as well as my previous two plugins and I can have this out in a month or two. No promises, though.
My plan is to make this pretty feature-rich, so this plugin can be utilized as a related posts or random posts plugin. It will allow you to limit the results to certain categories or tags (will even set it so it can dynamically sense the category or tag of the current page), set the count, order by (there’s like a dozen different ways WordPress can return post database results), before list HTML and after list HTML. But I think the key to this plugin is going to be my plan to have shortcodes within the shortcode. There will be a setting for the actual list item HTML, which will allow the user to insert plugin-specific shortcodes that refer to the current post in the list, similar to how I structured the shortcodes in Kalin’s PDF Creation Station. This will allow you to completely customize the display to have a link to the post, show the excerpt, date, author, modified date, comment count, ID, whatever you want, and still be able to have any HTML you want injected around those items, as opposed to the way most plugins like this function where they have their own static HTML structure with a few options inserted.
Now I know what you’re thinking: “Sounds too complicated. Do you seriously expect me to write a bunch of HTML into a shortcode, then deal with shortcodes within that shortcode and keep track of half a dozen other options while I’m trying to write a post?”
This is why I’m going to add two important features: first, obviously, is default options that you can set on the settings page so if you’re reusing the same shortcode, you can just set them once and use a minimized shortcode in the actual post. However, if you want to use this plugin on different pages with different settings, there will be a shortcode generator engine on the settings page, so you can set all your settings through normal form controls then output them all to a textfield which you can easily copy and paste into your post. At the same time, I can even have an option to output PHP code for copying into your theme.
From what it looks like, this plugin will actually be pretty lightweight in terms of overall blog performance. Often times plugins need to add hooks all over the place for catching this or that piece of data. All this plugin requires is a settings page and a single shortcode function. They will be fairly complex, of course, but will only run when they are specifically called.
I plan to use this myself on all my main index pages, for my MicroBlog page, as a related posts list at the bottom of every post, and as a recent posts and/or random posts sidebar widget.