I've been doing more freelance work lately and every project seems to be Wordpress.
People love the thing but I can't understand why. It drives me up a wall!
In no CMS should it take multiple people peeling over dozens of template/theme files just to figure out where some piece of something is being output! Here is some text on the home page, change it. Ok, but it's not in the home page template file, of course, because that is just a bunch of function calls and includes. So I trek down the wicked path of function calls only to find what I think is the right thing, but when I change it, nothing happens.
So I search for theme configurator, and find something that might work, but it doesn't. Then I finally find a "filter" which is changing it.
There is so much bad about WP, and I'm not trying to start a debate about it. But when you have to work on established sites, some years and years old, you tend to see the disastrous effects of the system. Plugins that are "locked" because someone somewhere edited the source code. Or locked because if the update is done, it breaks a different plugin. Or plugins that don't respect or check for already-included libraries, and then load duplicate/different copies of analytics, google maps, fonts, jquery, or whatever.
The complete lack of a standardized template system is always a pain in my side. What you would hope to be a template...a single file representing some kind of page....you won't find. Every "template" file is just a series of more function calls, filters, and action hooks, with the output strewn about in endless `echo` calls everywhere.
Granted, this could all be due to bad developers or using a poor theme, but that is also a problem. Themes used only a few years ago, already dead, not being updated. Sites based on those themes along with a child theme, can't be updated any more.
"So just change the theme framework and rebuild the site." - I hear you saying.
Sadly, no client wants to spend the $$$ to do entire site rebuilds on new themes every 3 years.
I recently updated a site using X-Theme that was about 4 years-ish out of date. Updating X-Theme broke everything, because they had changed their class names, changed their CSS grid tools and everything else. I had to poor over 800 lines of custom CSS that was now orphaned because the classes all changed and the templates too.
Even though I got everything ship shape, I could not, and would not, test every last CSS declaration to see if it was even doing anything any more. And thus one minute I think I've performed an "update", only to realize I've sort of created an even bigger mess of useless code that nobody has time or money to sort out.
I could go on and on for ages, but I must say, I wish something would come along that takes WP off the throne. I want something where a template is a template and a function is a function. A little more convention where it doesn't take 3 hours of research to figure out in what file a particular output is actually happening. I've learned very quickly working on WP to just download the entire theme and even plugins, just so I can do searches across all the files to find some hidden thing.
MODX isn't perfect, of course it needs some core tech to be updated, and a shiny new manager that isn't limited by ExtJS. But at least when I work on MODX, I can bet that my output is in a template or a chunk, and my CSS is in a CSS file, and things just make more sense. Literally nothing makes sense in WP. Every site I touch I have to research carefully how it was built.
I loath WP. I loath the fact they create 2 or 3 functions that do the same thing but just change how data is returned. Do you want to get_something() or the_something()? Do you want to get_header() or wp_header()? Why do I need a "the loop" and additional functions to prepare the loop data just so more functions will have the correct data? And don't forget to reset the loop! What ever happened to just sending an array/object to the template engine? No other CMS does this bizarre "the loop" thing. Why does every post meta need its own function? the_title, the_excerpt, whatever?!
I keep trying, but WP makes no sense how it works, rarely are any plugins documented well or allow themselves to be extended or overridden. Our policy is to never edit core code of WP or plugins or parent themes. So we are left with a constant battle of not being able to do exactly what clients want, because if we edit any core code of anything, it breaks future updates and just makes more maintenance headaches later.
And don't forget, WPes biggest strength is also its greatest weakness. It's so wonderful because every plugin you can imagine is out there. Yet if you want a good, fast, secure, solid site, you want as few plugins as possible!
Wow sorry for long post! I have little use for WP except that when sticking to the pure usage and output of common plugins, it's fast to get something done. But other than that, if you're a developer, you'll skip half the stuff that make WP popular and build your own theme and plugins!
But hey, people keep using it, and then they have to call me up at $80/hr for constant fixes!