Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

One of the things that attracted me to the WordPress platform was the plugin API and large selection, but more recently I have been self developing before looking for plugins, only using plugins for things that I don't feel I would be able to complete on time and in budget.

So what do you do when you need functionality? Do you first think how you can do it yourself, or do you dive into the plugin repo straight away, the 'never reinvent the wheel' mentality? I think both have valid arguments.

share|improve this question
1  
I sometimes write my own code because I just can't find a high quality plugin quickly enough. Too much plugins can take the fun out of programming. –  Jan Fabry Sep 13 '10 at 15:32
add comment

4 Answers 4

up vote 4 down vote accepted

There are several things I consider when making such choice (in no particular order):

  • does task involve general functionality (plugin) or processing my specific content (develop)
  • is there the plugin for the task from known developer and well-maintained (plugin) or there is fractured field of numerous plugins (develop)
  • do I want full range of related functionality (plugin) or single specific tweak (develop)

In general I will always do at least quick search through plugins to assess how likely it is to get task done with them.

There is no rule of a thumb here. I both use plugins for tasks that can be easily coded (for example page titles) and coded from scratch some really beaten things (for example anti-spam protection).

share|improve this answer
    
Good answer. I guess my vibe at the moment is that I am a junior developer, so anything I can code myself not only adds good experience (i.e recent addition of flickr integration, there a tons of plugins to do it for me very well) but also help me increase my code library, to make me a quicker developer. –  Mild Fuzz Sep 13 '10 at 10:43
    
Yep, practice is important - but so is picking your fights. I am much more likely to code myself something that I can properly understand and enhance... While some things in WP are still complete obscure nightmare for my skills that I won't touch any time soon. –  Rarst Sep 13 '10 at 11:07
add comment

Even as a junior developer, starting with the plug-in repository is often your best bet. I'm sure, when evaluating a particular situation, you already have in mind an approach you'd take with your custom development. Finding a tested, proven, "professional" plug-in that does the same thing is the best way to compare how you'd do it with how a more experienced developer would. It's a great way to learn as you go and pick up new techniques.

That said, there won't always be a plug-in available to fit your situation. In general, if you spend more than 5-10 minutes browsing the repository and can't find the perfect solution, stop wasting your time and build your own. Then submit your new system to the repository to help out the next guy who comes along.

Often times, I'll find two or three plug-ins that almost do what I want them to do ... but they're missing one or two features, or for some reason break my theme when they're installed. In these situations, I'll still start off with the stock plug-in, but I'll tweak it to fit my specific needs - remember, it's open source, so this is allowed and encouraged. Then I'll contact the original author and propose a patch to his or her project. Sometimes they accept it, sometimes the reject it, other times they ignore it. In a few cases, I'll publish a public fork of their plug-in just to make sure my patch remains available to the community, but over time whatever work I did either gets incorporated into the system or is replaced by improved WP core functionality or another, better plug-in from another developer.

I'm all for taking time to learn a new system and trying to build a solution from scratch, but if someone else has already done it (and tested/deployed their system) I'd encourage you to learn from their experience and build off their system rather than developing your own. You're already building on top of a platform (WordPress) that's developed by someone else ... building off an existing plug-in to avoid 'reinventing the wheel' is no different.

share|improve this answer
    
Do you also do this for large plugins, that have frequent updates? Because then some of the reasons why we don't like to hack core also pop up. –  Jan Fabry Sep 13 '10 at 15:34
    
Don't you think the best way to learn is to try to do things? –  Mild Fuzz Sep 13 '10 at 21:58
    
Yes, I do this with large plug-ins as well ... seem my statement: Then I'll contact the original author and propose a patch to his or her project. –  EAMann Sep 14 '10 at 0:06
add comment

Most of my plugins are self written. I don’t have the nerves to check other peoples code for security and performance issues. If something is to complex I look at GitHub first. The average quality there is better than on wordpress.org in my experience, and it is very easy (and faster) to see the code first. The repository is my last option.

A side benefit of writing your own plugin: You learn something, and each time you’ll be faster than before. :)

share|improve this answer
add comment

I really don't like to re-invent the wheel, so I start by searching Google and the WP plugin repository.

Most of the time there's something out there already that does what I need, or very close to it. At the least that's a good starting point, and takes around half an hour to look around, maybe another 10-15 minutes installing the plugins I've found on a testing install to see if it does what I think it does.

If I need to correct or expand on the plugin, then I try to submit my changes to the plugin maintainer.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.