ifacethoughts

WordPress - The Goods and The Bads!

A lot has been written about the niceties of Wordpress and its capabilities; its tweaks and extending its limits. Particularly Lorelle On Wordpress site and the post websites pushing wordpress beyond its limits points to very good stuff.

Nevertheless, as a software engineer I will analyse it from a different perspective - for more industry use than individual use. Blogging is not personal any more, the industry has accepted it as an effective form of broadcasting, marketing and community development, hence this effort.

Wordpress is a kind of tool that gives you instant conviction, both as a user and developer. To be able to setup your website quickly and also see a UI for managing it makes you feel powerful. This concept is applied in lots of tools to create Content Management Systems. The idea is to control entire lifecycle of the content using a single platform. Where most of these tools differ today is the flexibility and performance that they provide. Some of them are built for specific purposes or with certain ideologies. I will consider Wordpress as a CMS tool specific to blogging.

Wordpress supports the CMS concepts and the latest standards in it. It lets you design your website using pure XHTML and CSS. The correct use of this can enable you to have tableless designs and save a lot of bandwidth. In addition to this, it also allows separation between the layout and colours/styles of the design. At the core, it has an innovative design of a loop that provides context to all the operations within it. This eases the task for a developer. Lets look at some features:

Multiple heirarchical categories
This feature gives complete freedom to the information architect to do content classification as required, without thinking of technical possibilities.

Custom fields in the posts
This empowers the user to add more elements to the structure of the post. This is a pretty neat feature as it can be used to wrap the post as some other data type, without having to create any separate storage for it.

Plugin API, Hooks, Filters and Overridable Functions
Wordpress provides a plugin API to add functionalities to your blog. The hooks enable modification of the behaviour or optimisation at certain events, e.g, the wp_head hook gives a chance to do optimum Search Engine Optimisation. Filters are used to transform data between the point of retrieval and delivery. These features let the developer modify behaviour of the blog without hacking into the Wordpress code.

This idea is very impressive, but not satisfactory. The plugin API does not enforce any rules on the developer through the design. I see the reason behind this as non-Object Oriented implementation in lots of places. The purpose of a common system for all the plugins can be two-fold, one is it will ease plugin development and two it will make the upgrades much easier. Now with PHP5, Wordpress should definitely try to achieve more here.

Wordpress does not provide lot of control to the developer over the retrieval of data. The user can use filters only after the data is available. A disadvantage of this approach is that some unnecessary data might also be requested which will not only increase the time of retrieval but also affect the memory and increase processing. For example, if a category or post has to be hidden, the developer has to use filters to hide. This can be avoided only if the developer writes his own SQL query and starts a loop. But this will mean that the developer will have to be exposed to the database design, which might change in future. The plugin API should hide the plugin developers from these internals and provide an uniform interface. I attribute this to embedded SQL queries. Which can be modified only to a certain extent at runtime. Wordpress should provide such control to the developer so that his/her actions can dictate formation of the entire SQL query.

An idea case would be that Wordpress starts using stored procedures, MySQL 5.0 supports them. Stored procedures are compiled in the database and are effective in increasing performance.

Separation Of Concerns
Wordpress, through its support of XHTML templates and CSS, allows separation of data and display, i.e., the formatting of the data can be completely different from the storage, retrieval and processing itself.

The templates themselves are PHP files which can help quick development, but it also poses a danger of co-existence of code for retrieval, processing and layout of data. There is no physical separation between them. Wordpress can use something like Smarty to differentiate in the design itself. This is a subjective thing, it makes the development more complex for smaller projects, but it will definitely help in bigger projects (like WordpressMU) and where bigger teams involved.

Search
Wordpress has search that is partly effective. It does not search through everything, there are some plugins to this effect, but they will never be as effective as Wordpress supporting it by design. The search does not show relevance or highlights of searched keywords. It needs a strong search enging that can index the data and provide better search performance. One of the outstanding open source search engines available today is Apache Lucene.

Data types
Since Wordpress is a blogging tool, it supports the data type of a post (or entry). It also has other data types like categories, links, users, etc. Like mentioned earlier, the post can be disguised as another data type by using its custom fields. This is the only element that supports creation of new data types. There is no common framework to create or handle the datatypes. This means that when I add my own data type, everything has to be done from scratch. This can not only be cumbersome but also dangerously erroneous. Having a framework for this will also help Wordpress in controling lifecycles of the different data.

The option of custom fields can be used to only add to the post, but it will not help to create a data type for images or newsletters. This can also help to build bridges between Wordpress and other applications.

Workflow
Currently a very simple workflow is provided for controlling publishing of a post. But there is no way of building other workflow events or rules into it. There should be a workflow engine to support this so that it can be used in diversified environments.

Syndication
The support for syndication is nice and full-fledged. With more and more plugins adding functionalities, syndication is getting richer and richer.

Multiblog
There is support for multiple users in in WordpressMU, but it is still not part of the main package. Support for multiple blogs requires good central administration, and more granular permissioning for assigning administrator per blog.

Wordpress is still one of the best tools available for blogging, the best for me. I firmly believe that its core design and development is a reason for this, and it has to be continuously enhanced to meet newer challenges in blogging.

Technorati tags: , , , , , , , , , , search, , , , , , , , , ,

Copyright Abhijit Nadgouda.

Discussion [Participate or Link]

  1. Abhijit Nadgouda @ iface » Wordpress - Multiple Heirarchical Categories To Rescue said:

    [...] Ideally we would have preferred to create datatypes of each of the aspects - editorial type, publication and topic. However, as I have written Wordpress allows, but does not inherently support creation of different datatypes, we would have to create everything related to that datatype. For this iteration, this approach not only saved us lot of time in implementing the content classification but also made it convenient for the user and the administrator. Feel free to comment on this and give suggestions. [...]

  2. Abhijit Nadgouda @ iface » Wordpress - Common Theme For Frontend and Admin said:

    [...] This is something I had been meaning to write about for a long time. Probably this can be considered to be part of my consideration of Wordpress as a CMS. But even from usability point of view this can make sense. [...]

  3. Knowledge Management said:

    A Big Hello to All ; ) My name’s Betty Floyd Masterson. I’ll say to you now I’m kinda new to Blog stuff! I just have to say this is one of the better blogs I have visited. I’ve subscribed to your rss feed!

  4. Abhijit Nadgouda said:

    Thanks Betty.

  5. Lazy Drive said:

    Kid in a candy store.

    Wordpress is offering Unlimited blogs! WOOHOO! So I can finally do what I did with my blogger account - get more blogs than I could handle - and the result was me getting a blogger's block, after tryin to do justice to all the blogs I started.
    I&#3…

  6. Abhijit Nadgouda @ iface » Blog Archive » Of Wordpress Search said:

    [...] One of my biggest issues with Wordpress is about its search. [...]

  7. diesel fuel said:

    as-94783-sa

    I like the info you provide about bank ; cross.Good job !

  8. Samiro said:

    Very interesting article. But, while WordPress is a powerful online publishing tools, even with its current limits (everything has its limits) it is very suitable for SMW’s (Small/Miduim Websites). As for large websites (in terms of data / traffic) I consider Drupal to be WP’s big brother. Even Drupal has its limitations when it gets to mega clustered projects that may need customtailered solutions. Would be even further more interesting to see this analysis in comparison with other alternatives to WP.

    kind regards,

  9. Abhijit Nadgouda said:

    Hi Samir,

    Yes, I agree Wordpress is the best blogging/personal publishing system tool, and is even applicable to large-scale websites. It will more depend on what is the site doing to see whether Wordpress applies or not. If its limitations are not a hindrance, it is the best tool.

    I think every CMS has its limitations, it is built with a purpose and philosophy. None can fit all sizes. However, if we talk of a generic CMS, IMHO, it should be able to handle multiple content types, which I think is possible, but difficult, in Wordpress. Otherwise, it is the best, I don’t think I have come across a better tool than Wordpress for blogging or websites with limited content types.

    Stay tuned I will come up with analysis, rather than comparison, of CMSs soon.

  10. New Blogging Engines on iface thoughts said:

    [...] In today’s age, you cannot afford to compete with Wordpress and Movable Type unless you have good enough USPs. Habari has the edge over Wordpress by using the latest technology, mainly PHP5. PHP5 supports an object oriented object model as compared to its predecessors and provides a chance to write strong object oriented code. I personally believe that OOP encourages better and flexible design, which in my opinion can benefit Wordpress too. David Peralty has put up a lot of information about the project. Habari will create some interest as it has developers who have been active with Wordpress before. Read posts by the contributors to get the background - Chris Davis, Michael Heilemann and Khaled Abou Alfa. It will be really interesting if Habari turns out to be a technically better Wordpress or something completely original. I sense a fear against object oriented programming in the Wordpress community that it will make Wordpress tougher to develop or use. Habari can score there. [...]

  11. Of Wordpress Search on iface thoughts said:

    [...] of my biggest issues with Wordpress is about its search. The default search is not really useful, neither does it show the relevancy [...]

  12. Wordpress - Multiple Heirarchical Categories To Rescue | iface thoughts said:

    [...] of each of the aspects - editorial type, publication and topic. However, as I have written Wordpress allows, but does not inherently support creation of different datatypes, we would have to create everything related to that datatype. For this iteration, this approach not [...]

  13. Wordpress Queries Reviewed | iface thoughts said:

    [...] I have reviewed Wordpress from a Content Management System (CMS) perspective. I have registered one more rant about [...]

  14. Wordpress - Common Theme For Frontend and Admin | iface thoughts said:

    [...] I had been meaning to write about for a long time. Probably this can be considered to be part of my consideration of Wordpress as a CMS. But even from usability point of view this can make [...]

Say your thought!

Who are you?

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.

freshthoughts

freshcomments

contactme

Abhijit Nadgouda
iface Consulting
India
+91 9819820312
Y!: anadgouda
GTalk: anadgouda@gmail.com
MSN: anadgouda@hotmail.com
Skype: anadgouda
My bookmarks

currentproject

Complete Wellbeing

badgesand...

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.

Twitter - Trying out sakura terminal - http://www.pleyades.net/david/sakura.php