It Is Not That Easy To Clone WordPress

I have read quite some tutorials which show how WordPress can be built using certain frameworks in a couple of days or in a matter of seconds. They are quite good, and I personally believe that it helps to write a blogging engine if you want to learn Web programming. Unfortunately these tutorials also lead some to believe that this is all there is to WordPress and ignore its capabilities which are the differentiators, and in my opinion, makes it suitable for much more than just blogs. Of course WordPress is about publishing on the Web, but it offers some capabilities that makes it extremely usable and flexible.

Plugins and Extensibility

It is quite possible to write a tool that publishes on the Web. However, WordPress richness comes more from its extensive and active plugin repository. All this is possible because of a plugin API allows plugins to extend, and even modify, a lot of the WordPress capabilities via hooks. I have not seen the idea of pluggable functions being implemented in many tools, and this makes WordPress so easy to extend and customize for your purpose.

This is not a matter of coding, it is about designing the plugin system to allow others to modify, without touching the core WordPress code, and making it easy.

Rewrite API

WordPress sports a usable Rewrite API. A lot of frameworks and applications today provide user friendly URLs, but WordPress makes them configurable. This is the reason why you can choose the structure of your URL and it just starts working. Rewrite API not only enables this, but also allows plugin authors to define their own rewrite rules.

Template Heirarchy

WordPress’ template heirarchy makes the template system as flexible as you want. You can write a theme using just one template and it gets applied everywhere or you can have a different template for categories, authors, posts, pages or even for individual posts and categories. This means that now you can make two category pages or two posts appear completely differently, all through your theme.


I personally do not use the Widgets a lot, but I know some people who consider them absolutely necessary. What do widgets do for you? They let you work on parts of the theme you use without touching the code. The theme editing now offers a drag and drop interface to add or delete widgets to certain areas of the theme.

Flexible Feeds

Feeds are a critical part of your blog if you want to make it easier for others to follow you. Content syndication is as important as publishing. But what if I want to syndicate only certain posts? Or what if I want to offer category based feeds? Or comments? WordPress lets you do them all, and much more. Any content that you can see on the browser can be syndicated by the WordPress’s feed mechanism.

The underlying aspects of all these features are usability and extensibility. While the publishing functionality can be easily and quickly built today, it is not that easy to clone these aspects of WordPress.

Discussion [Participate or Link]

  1. Kevin said:

    The only two things you listed which I would even want in a system I wrote myself are Templates and Rewrite…

    So far I haven’t found a plugin I couldn’t write (in a smaller, less “general” way) in functions.php or a specific template file. DoFollow is a great example of this, 4 lines of code in comments.php and I was done.

    I don’t use widgets, they don’t offer anything to me. Blackboxes are, in general, an evil thing to developers.

    As to feeds… WordPress feeds were broken until version 2.0ish (tried to use feed://http//blah). I still run across older blogs which have this issue. Also, a service like FeedBurner covers all of my Feed needs.

    The ultimate question you have to answer: Are you writing your “blogging system” for you, or for other people. If you are writing it solely for your own consumption then you can probably do a lot better than WordPress (smaller, faster, blah, etc…) If, on the other hand, you are writing a system to compete with WordPress (and Movable Type, Expression Engine, etc…) then everything you mention in your post is very true.


  2. Grant K Rauscher said:

    WordPress is fairly simplistic in its pattern

    the point is that Content Management Systems are a lot more flexible than apps… so one can start with a blogging pattern’s leaf-node features

    in other words developers & architects know they can start with a core that in terms of WordPress or YouTube is already done

    but that doesn’t mean the pattern several steps removed isn’t a wholly different context, e.g. selling for billions instead of propagating to billions of installations

Say your thought!

If you want to use HTML you can use these tags: <a>, <em>, <strong>, <abbr>, <code>, <blockquote>. Closing the tags will be appreciated as this site uses valid XHTML.



Abhijit Nadgouda
iface Consulting
+91 9819820312
My bookmarks


This is the weblog of Abhijit Nadgouda where he writes down his thoughts on software development and related topics. You are invited to subscribe to the feed to stay updated or check out more subscription options. Or you can choose to browse by one of the topics.