WordPress Plugin That Isn’t

February 2nd, 2010 by Keith from shrewdies | No Comments | Filed in Function
This is about the WordPress plugin that isn’t a plugin!

It might become one. It started life as one.

But, for now, it is a Pods package, and this is the first part in a series that explains what a Pods package is, how it improves WordPress functionality, and how you can apply it to your own site.

Before we start, I was reminded earlier about the crucial importance of purpose as your first step. When you set out to add functionality to WordPress, you must be clear about why you are doing it. If you employ assistants, or ask for help on the forums here, or elsewhere, you must communicate that purpose clearly.

Xarzu told me earlier that she wanted to write WordPress plugins and asked if I could recommend a comprehensive list of hooks, actions and filters. I subsequently found she’d asked this in just about every forum on the Internet, irrespective of it’s subject matter. That kind of spam is best ignored, but it does serve as a prime example of what goes wrong when you do not have a clear purpose.

Firstly, I noticed that Xarzu had received lots of positive help, despite the poor question. People want to help, but if the goals are not clear, if the question is too vague, if there is lack of purpose, then that help is often wasted. So before you even think of adding any functionality to WordPress, think long and hard about the purpose of your plugin, and who the typical user is.

My latest project started when I tried the Splix theme, and found the built-in menu bar. It certainly helped me use WordPress as an application, and is a welcome feature of WordPress.com sites. It struck me that as you add functionality to your website, e.g. with forums, polls, news etc, your website becomes an application for your visitors. So I started my WordPress menu bar plugin project.

The purpose of the plugin is to improve navigation efficiency for 3 groups of users:
Read the rest of this entry »

Tags: , , ,

WordPress Plugins – Developer’s Dream

February 1st, 2010 by Keith from shrewdies | No Comments | Filed in Function
I searched for WordPress Plugins that would help me apply structure to my own efforts.

A scary journey, but now the nightmare is over.

Now I can dream happily of a bright WordPress development future.

But, there is no time to dream. Not even time to hack together a pretty picture to decorate this article. I’m fired up for developing, but there is just enough time to let you know what the plan is.

When I finally decided on the SCB framework, I sat down to plan how to integrate my menu system, a hack of DashBar, into that structure. It looked like a project that might also suit Pods, as I would need somewhere to store menu item links.

What’s the first thing I notice in SCB? Routines to handle WordPress options and table data. But can’t I just use Pods for that?

Yes, I can!

Read the rest of this entry »

Tags: , , , ,

Pods WordPress Plugin

January 30th, 2010 by Keith from shrewdies | No Comments | Filed in Function
The Pods WordPress plugin is driving me crazy.

Mad with admiration one minute, mad with frustration the next.

It’s like breaking your leg when you jump around to celebrate a lottery win. Fantastic find – frustrating failings.

Let me say first, that so far, I believe the potential of this plugin is tremendous. I’m just letting off a bit of steam here because the excitement of finding a truly great WordPress plugin is making me emotional about the rough edges. I am certain those rough edges can be easily smoothed. The proof of the pudding will come in a day or so, when I complete my replacement toolbar.

The developers describe it as:

WordPress evolved.
Pods is a CMS framework for WordPress.
It’s a plugin that sits on top of WordPress, allowing you to add and display your own content types.

I see it as a Rapid Application Development (RAD) tool that could change the way we look at plugins.

Why am I so pleased with this gem?

For months, I have been looking for an easy way to work with extra data tagged onto WordPress. With a background in relational database planning and management, it is frustrating to have to workround things like usermeta & WordPress options. Also, I like simple but comprehensive forms to manage linked data, and it is daunting to have to code a relational database application to integrate with WordPress.

I can see that it can be done. Simple:Press forum is a prime example of integrating a rich database application into WordPress, but it has a scary amount of code and complex field relationships, with little in the way of generic routines that can be adapted for other applications.

Other tools I have seen, only allow simple flat file manipulation, and would need a lot of adapting to tackle relationships. Enter Pods – an easy way to add relational tables as separate applications, or linked into WordPress users or posts. Amazing potential, and amazingly easy to use.

So what are the problems?

Not much if you are familiar with coding, and do not mind getting your hands dirty.

  • The user guide is very poor in examples, and I suspect some of it is out of date, as the plugin is still on a steep development curve.
  • The forum, and the guide, have been radically pruned recently, so just as you think you have found an answer to something – click – 404 not found!
  • Pods has a great way of attaching code to fields called helpers, but the names of these have been changed in the latest release, so many of the example packages do not work. However, it is very easy to find and replace on these, so very easy to fix – I’m just surprised it should be necessary.

So that’s a very brief introduction to Pods. I’ll go and finish the toolbar, then go through some code over the next few posts to show you just how easy it is to build an application. Early days yet, but I think this might be the answer to my nightmare about the lack of good, well-structured example plugins.

Tags: , , ,

Simpler Forum User Requirements

January 21st, 2010 by Shrewdy | No Comments | Filed in Web Hosting

Using the simpler forum format, I need:

  • Either a better dashboard, or restrict it completely.
  • Alternative way to create new posts, or autosave with current
    form.
  • Edit post should not use admin area, but IE does not format Front Edit correctly.
  • Working profile page.
  • New/updated Topics on menu bar.
  • Subscribe/watch topics

Edit of original post and comments should be either paragraph or full. Edit
should be limited by activity, not by time.

WordPress Theme Functions

January 9th, 2010 by Keith from shrewdies | 1 Comment | Filed in Form, Function
Functions and options bring flexibility to WordPress themes, but can they also over-complicate?

Flexibility is second only to speed in terms of theme importance.

There are risks when theme functionality goes too far, so you need to know where to draw the line.

Your WordPress theme is the face of your website – your front of house, if you like. Just like the real world, front of house has to present your features and benefits in your best light, and it has to direct visitors efficiently by providing comprehensive, consistent, accessible navigation.

Recent trends are to added customization options, and increase functionality. Feature that used to rely on plugins, especially custom RSS feeds and header/footer code, are now options in many themes.

Disappointed Digression
This Analytics problem highlights why my plea for keeping functionality out of themes is more than me being tetchy. A good Google Analytics plugin would recognize the need to track external links and include the necessary code. I believe at least one does this, but I will review them later. Managing the code is much more than just pasting the basic script into a box, and I believe it should be left out of themes.
If theme authors want to emphasize the importance of Google Analytics (or anything else) they can easily incorporate some Admin warnings without bloating the code for all users.

I was reminded of this today when I checked my Google Analytics, and realized the external tracking code[1] was missing. I always used to add this type of code manually to footer.php. It is very easy to do, but you must remember to change it whenever you change the theme.

To avoid disruption whenever I changed theme, I started using plugins to manage Google Analytics code, and other footer additions. Today, I realized that I can easily go to the theme options for this, and dispense with a plugin. That is tempting, as reducing plugins usually means a faster website. However, I’m not convinced that the theme option is the right place for this.

If I change my theme, I lose functionality. This cannot be right. If it was a WordPress standard, then I might accept that using an out-of-date theme could cause loss of functions. However, there is no standard here, so even if the new theme allows footer code to be added, I still have to remember to copy and paste it to the new theme.

I do wish theme authors would focus on polished presentation and nifty navigation. Give me CSS options and layout options, but please leave the functionality to the plugin authors. Better still, just move your functionality to your own plugin or integrate the features from a popular plugin that performs the same purpose.

WordPress Theme Functions: Next Steps

As we are all stuck with an undisciplined way of adding code to footers, unless WordPress produces a standard, we must ensure that we manage change properly. Footer code is easiest when managed with a plugin. If you want to save a little loading speed, use the theme options or theme editor, but be sure to have a proper change procedure for applying new themes. Such a change procedure covers preparing for and checking all theme dependent functionality, and I will write more on this later.

WordPress Theme Functions: References

Tags: , ,

Best WP Theme Service

January 6th, 2010 by Keith from shrewdies | 4 Comments | Filed in Form
I’ve just seen the best WP theme service. I’m grateful and a little awestruck.

For people to donate their time to the WordPress community by developing free themes is one thing. When the theme stands out amongst thousands as truly meeting it’s purpose, that is excellent.

Awesome Aside
Despite the spell checker setting (which is set to American in recognition of the majority of my visitors), I’m a Brit based in the UK. I do not say awesome every other sentence as a habit. When I say awesome, I mean I am awed, overwhelmed and grateful. This is out of the ordinary – and a very pleasing experience.

When the author offers first class customer service – a million miles away from the common “what do you expect when it is free” attitude – that is awesome.

You might wonder why service and support matter – surely, it is the theme performance that is most important? True, a theme must work properly and deliver superb presentation. However, even exceptional themes, if not well supported, soon fall by the wayside. A well supported theme is different – it just gets better and better – as you will soon see.

I’m testing out the Swift theme on this blog. As I mentioned last week, the best WordPress themes are usually the fastest. Swift by name, Swift by nature.

The first impression was good. It is fast, but I have not tested it fully yet. It is flexible, but I have not explored all the options yet – just enough to realize that there are sufficient options to make it possible to avoid the samey look that many themes bring.

“So why are you writing a review when you haven’t finished testing it yet?” I hear you ask.

This is not a review – that will come soon – but the level of customer service that the author offers deserves immediate recognition. So often we see bad support for WP themes (and plugins), and the excuse invariably is that customer support is not justified because the software is free. That is wrong – there is nothing more frustrating than seeing something useful fail because it’s author failed to explain properly how it works.

Contrast that ‘take it or leave it’ attitude with Satish Gandham from SwiftThemes.

First off, I could see from the site that the theme is well supported. These days, if there is no obvious author support, I tend to ignore themes. With WordPress advancing as quickly as it does, it is not worth getting locked into outmoded software. Swift was obviously supported, which is good, but not exceptional.

The exceptional customer support came to my attention this way…

I keep a ‘work-in-progress’ blog to record half-developed ideas (some say they all are :smile: ) and progress notes. It saves cluttering up the blog, and sometimes what could be Draft or Private deserves to be seen. I made a note about Swift as part of another topic, mainly as a reminder to do the Swift review once I had finished the current project.

I linked to the Swift site, and Satish soon dropped by to tell me he had a new version of the Swift WP theme available in beta test. OK, it is not remarkable that a busy website owner and theme developer should take the trouble to acknowledge a link, but it is rare enough to be pleasing.

The remarkable came when I checked the link. Not only has Satish made improvements, but he has set up a demo site where you can login and view all the new options. None of the usual “take this beta stuff and see if you can wreck your site with it”. He has taken the trouble to remove all the beta testing risk by providing a demo site. Furthermore, it is not just a meaningless 2 page spread of indecipherable Latin – this has enough content to see how a real site will look.

As you can see, I’m impressed. I’m also very grateful that there are still WordPress contributors who go the extra mile and offer exceptional customer service without charge. Truly, the best WP theme service.

Best WP Theme Service: Next Steps

Do you know other WordPress theme authors that offer exceptional service? Please share the details below. Let’s keep this to format enhancing themes, but if you want to share WP plugin customer service experiences, why not join the discussions in the Functionality Forum (start a new discussion if there is nothing suitable at the moment)

Tags: ,

WordPress Hosting Theme

January 3rd, 2010 by Keith from shrewdies | 2 Comments | Filed in Form
“Where can I get a good WordPress hosting theme?” asked Fred.

It is a question that crops up time and again. As questions go, it seems straightforward, but you have to wonder why anyone would ask a question like this.

I am assuming that Fred is starting a web business related to WordPress Hosting, and not planning a hobby site to explore and discuss the finer points of WordPress Hosting themes. In that case, we have yet another example of failure to build the foundations of a web business.

It is no use simply deciding to set up a WordPress Hosting business without being clear about the purpose and objectives of that business. People familiar with my PROSPRA method know that WordPress hosting is not a suitable purpose. Brief examples of suitable purpose are “to advise students about finding WordPress hosts that will help their research and presentation” or “to supply a website hosting service that provides new website owners with a ready-to-run WordPress site”.

Those purpose statements would be longer in the real world, but the point is they are specific to the type of customer you are seeking. Fred’s question gives us no clue about his target customer base – a common situation implying he has not defined it. If you do not define your target, then how do you find it?

It may well be, for technical guys, concerned with installing and configuring server software, that you have no part to play in defining the purpose of the web business. That is fine, but you must get your client or boss to explain the purpose in clear terms. You cannot be expected to install or design an appropriate theme if you are unsure about it’s purpose.

Wrong Way To WordPress Hosting Theme


WordPress Hosting Search.
Just type themes in this box.
There is no need to type WordPress Hosting.

Search for one, and you will find sites that list any number of generic WordPress themes, made to look like the ideal hosting theme by the addition of pictures of servers.

Follow this route, and you have a generic looking site offering a generic service. You compete directly with thousands of others, and your theme will never be memorable.

How To Choose A WordPress Hosting Theme

Accept that if you want to cover your site with pictures of servers, it is extremely easy to amend any theme to do that. So, you can start with any theme, and you need to think what other properties are important. I suggest that speed is the most important issue for a hosting business. Better still, if your purpose is to aim at a specific section of the market, you can differentiate yourself with a theme that appeals to photographers or students, or…

If you are hosting several WordPress sites, or if you will be helping clients configure their own sites, it is good to use a theme with comprehensive customization options.

Install a good, fast, flexible theme and adapt it to your needs. You will get better results than by installing a generic WordPress hosting theme.

WordPress Hosting Theme: Next Steps

You’ve seen how important purpose and objectives are, so if these are not clear, your next step is to apply some PROSPRA techniques.

If you need more help with themes, look at related articles in the Form Section, or ask your questions below.

Tags: ,

Simple:Press Forum Simplified

January 1st, 2010 by Keith from shrewdies | 1 Comment | Filed in Function
I’ve simplified the Simple:Press forum today – by deleting it!

A drastic measure, but a timely one.

Don’t be misled – it is a fantastic plugin. In fact more than a plugin, it is a very special application. But sometimes, you have to take a hard decision to ensure you efficiently fulfil your purpose.

Community websites are the best way to explore, expand, and exploit your web business opportunities. A forum emphasizes that sense of community, so am I mad to get rid of it?

To understand, you need to be clear about the purpose of your forum, and clear about your alternatives.

I chose the forum route because I was unhappy with the limitations of commenting. My research told me that Simple:Press Forum was the best option for a WordPress site. However, I did not want to stop WordPress comments as they are popular with many people.

Moderating comments and a forum becomes tedious as conversations become fragmented and spam control is totally different. Keeping web pages “on-topic” with a clear keyword driven focus is as important to visitors as it is to search engines, and having two separate conversation streams makes that focus difficult.

Though the Simple:Press forum offers excellent member management, none of my sites is a true membership site. I encourage contributors to maintain good debates, but membership really equates simply to access rights. In my case, these are simple – visitors either contribute, or they read.

Despite it’s name, Simple:Press is quite complicated. Both from it’s extensive feature list, and ‘under the hood’ it is far from simple.

I realized I could get what I need by enhancing WordPress comments, plus a few other tweaks. I will describe these in more detail later.

For now, it’s goodbye Simple:Press. Nice knowing ya, and when I need a membership site, I know where to look.

Tags: ,

WordPress Plugins – Beginners Nightmare

December 22nd, 2009 by Keith from shrewdies | No Comments | Filed in Function

WordPress plugins are vital for efficiently functioning websites.

WordPress Plugins Structure Nightmare

WordPress Plugins Structure Nightmare

Given their importance, I would expect much more effort going into helping new plugin developers get to grips with plugin structure.
 

The WordPress development team resist adding features to the core if they are not universal requirements and can be dealt with by plugins. This is a good thing, and they have recently announced plans to develop “canonical” (i.e. official) plugins to “address the most popular functionality requests with superlative execution”[1].

Significantly, these will be “the best possible example of coding standards”[1]. But just what are these coding standards that are deemed so important?

The first thing I want to do when I write a plugin is adopt a structure that:

  • Is the most efficient in terms of performance (i.e. no redundant code, especially admin code loaded for all users)
  • Uses core WordPress functions and methods instead of home-grown alternatives.
  • Uses latest functionality and best practice, avoiding deprecated functions and methods.
  • Is familiar to the majority of plugin developers.

It’s the last point that induces the biggest nightmare. Official coding standards[2] focus heavily on inline documentation and formatting[3][4]. This is all very well, but we need good examples that clearly show best practice in how to organize code in modules. Which bits are best in separate modules, and how should they be organized in sub-folders?

It speaks volumes to me that Read the rest of this entry »

Tags: ,

WordPress Upgrade 2.9

December 22nd, 2009 by Keith from shrewdies | 1 Comment | Filed in Foundation

WordPress upgrade is now so easy, there is almost nothing to it.

The new upgrade to WordPress 2.9 is typical of the inbuilt update routine. It simply updates itself, but there are a couple of points to watch out for.

WordPress Upgrade Fatal Error

WordPress Upgrade Fatal Error

First, the usual warning – backup your database and files.

It is easy to be complacent here, and assume that it never goes wrong. Frankly, it hardly ever fails, but if it does, it leaves you with no website, and no easy way of recovering it. If you are happy to run the risk of starting from scratch, then skip the backup – it’s what dummies do.
For us shrewdies, a quick backup is the first step in upgrading WordPress. The backup service from your web host admin panel will do it easily in one step (unless you have a very poor host).

Second, simply click the “Upgrade Automatically” button, and wait a few seconds. It is that easy – but what if it goes wrong?

Occasionally, you will see a message like:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 2515174 bytes) in [your-wp-path]/wp-includes/http.php on line 1331

Read the rest of this entry »

Tags: , ,