Why is WordPress considered to be poorly programmed?

PhpWordpress

Php Problem Overview


I'm not a fan of PHP or spaghetti code, or anything like that, but in my experience WordPress works amazingly well, it's well organized, and I've never come across any hard to understand code. The documentation is incredibly thorough, any security flaws are fixed within seconds, and it "just works". Not to mention that it does EVERYTHING, and it has an awesome plug-in system. Oh, and "the Loop" is awesome. I've never had any problems doing simple modifications to the code or to themes.

Can you guys give any specific examples of what you don't like about it, or what you would have programmed differently? I just don't understand why it gets such a bad rap. I wish my own software worked as well and had as many features and looked as nice.

Php Solutions


Solution 1 - Php

I'm a fan of WordPress, but there are definitely issues that impede coders trying to work with it. As a small example, there's get_the_content() (returns) and the_content() (prints), but there's get_permalink() and the_permalink(). Then, there's just the_date(), because it accepts an argument indicating whether you want it to print or return. This kind of thing drives even an experienced WP person up the wall, because you've always got to be Googling the usage - and it speaks to a deeper lack of attention to detail in the code.

Another glaring issue is the lack of built-in caching. It even used to have it, but they ripped it out and never replaced it. You shouldn't need a third-party plugin to have basic caching in a system like WordPress, particularly with all the other bells and whistles it builds in.

To paraphrase (supposedly) Churchill, though, "WordPress is the worst blogging system... except for all the others".

Solution 2 - Php

I've written many custom applications in PHP/MySQL over the years - from tiny to huge. Not having taken the time to learn the details of WordPress, I find it very frustrating to work with (under the hood).

Subjectively:

  • Very poor naming conventions
  • Execution flow is bizarre
  • General lack of organization
  • Hard to audit what happens when
  • etc...

Their concepts of usability is great, and support for plugins is also great. I'd just love to see the system re-engineered with those principles, but with a disciplined and clear development methodology.

I'm sure the next guy would say "no it isn't, bla bla bla", but that is just my opinion after bumping into it (hosting, modifying) about 3 times.

Solution 3 - Php

It's a subjective question for sure. From experience I've notice WP takes way, way more server resources than other systems or my custom code. I've had to move WP sites off my servers as a consequence. So my experience suggests there are some memory use issues.

As an exercise try going through the code, tracing the logic from the start of a request to a page, and look at how many objects are loaded, how many methods are called before any HTML is output.

Solution 4 - Php

Apart from what's been mentioned already:

No sane templating system. All those years and they still have PHP code intertwined with HTML, and default templates that have no support for i18n or l10n whatsoever (hard-coded strings, hard-coded date formats, etc.).

Multiple entry points - maybe it's just me, but it's annoying. Especially when some of those are way too big.

Solution 5 - Php

When you have to be sure of a statement that is made by "everyone", if you can, is trying to check it for yourself.

And you can do something in your statement: just read Wordpress source code. Some modules are good, some are a mess, some others are just normal. But all of them compose a great blog system that are used by thousand of people around the world that are more interested in writing good stuff instead of complaining about "how ugly" is a particular source code. In summary, the Wordpress creators have a shippable product that is useful.

In the end, it doesn't matter. If you want a perfect blog system, you can always write one yourself.

Solution 6 - Php

> Can you guys give any specific > examples of what you don't like about > it, or what you would have programmed > differently?

I would have added more comments.

On a separate note, the most recent version of Wordpress introduced a labyrinthine piece of code that denies access to pages that:

  1. Aren't in a menu or submenu
  2. Aren't in the $_registered_pages variable.

A lot of plugins for earlier versions of Wordpress have been broken by this new security measure.

Finally, sessions. Wordpress does its very best to get out of your way by handling all its session data in a separate manner from PHP's built-in $_SESSION variable, but it doesn't give you the option of starting the PHP session, you have to add that to the core program yourself. I haven't found documentation that would allow us WP hackers and plugin writers to take advantage of the pre-existing WP session yet, either.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionPhilip BrocoumView Question on Stackoverflow
Solution 1 - PhpceejayozView Answer on Stackoverflow
Solution 2 - PhpgahooaView Answer on Stackoverflow
Solution 3 - PhpDevin CeartasView Answer on Stackoverflow
Solution 4 - PhpCat Plus PlusView Answer on Stackoverflow
Solution 5 - PhpGmonCView Answer on Stackoverflow
Solution 6 - Phpuser174057View Answer on Stackoverflow