Hacker News new | past | comments | ask | show | jobs | submit login
WooThemes joins Automattic (woothemes.com)
226 points by schwuk on May 19, 2015 | hide | past | favorite | 151 comments

I'm fascinated by Wordpress success.

It's an horrible peace of software, with horrible PHP code 4.x style, a db schema only a beginner could have come up with and an ecosystem with a lot of trash(not even talking about the admin which is hideous ). Yet it's a blazing success in the CMS space, because of 3 things that are insanely overlooked by other CMS developers :

- Ease of installation

- It runs on a minimal PHP/Apache/Mysql setup (cheap hosting)

- It has a great backward compatibly, unlike other solutions that break everything with each major version.

If one compares with Drupal for instance, I mean with Drupal, a designer can go really really far without writing a single line of PHP code, aside from a few tags for templates(but it's really light). You have views, CCK and a lot of handy stuff.

On the other hand, one cannot customize Wordpress without writing more than a few php tags or downloading a plugin that will mess up with the original db schema. And good luck customizing the admin(easily done with Drupal).

I get that Wordpress is more of a "platform" businesses can build products upon, but who would really want to build on that shitty core,with that db schema? one can say i'm negative and unfair in my criticism, but I think my arguments are valid.

It's true however that while Wordpress gets a lot of heat from PHP devs, there is no effort from the PHP community to build something like Wordpress with a better codebase, and a better db schema. So Wordpress still has a reason to exist.

Reminds me of Javascript : dismissed as an horrible toy by smart people, fits an niche, becomes popular and ubiquitous , smart people now have to work on these deployed codebases....

First, I should mention that I'm glad to see this dismissive and negative comment voted to the top. I was starting to worry that HN was losing its edge.

Next, you mention:

> Yet it's a blazing success in the CMS space, because of 3 things that are insanely overlooked by other CMS developers : - Ease of installation - It runs on a minimal PHP/Apache/Mysql setup (cheap hosting) - It has a great backward compatibly, unlike other solutions that break everything with each major version.

The actual, true and documented reason that WordPress has become a blazing success in the CMS space is the ease of use of the backend administration console. This comes from developer and client feedback in poll after poll of WordPress users and developers.


> If one compares with Drupal for instance, I mean with Drupal, a designer can go really really far without writing a single line of PHP code, aside from a few tags for templates(but it's really light). You have views, CCK and a lot of handy stuff.

I've heard Drupal developers themselves actually look to WordPress's method of having the option of handling these things in code/configuration as a net positive. It's trackable and portable.


I've got to ask. If a builder of websites was looking for something that wasn't horrible and built by smart people, which one would that be?

I was about to point this out exactly. I used to do client training for a small web dev shop on everything from Google Adwords and/or Analytics to Joomla and Drupal. WordPress' admin was head and shoulders above the rest in terms of ease of use. I've always thought that was the keystone of its success.

For some of the websites I have had to maintain in Joomla, it would be much more efficient for the company if I converted to Wordpress and the writers use that.

Wordpress is easy to use. With plugins, such as advanced custom fields, you can do even more. I've impressed many clients with how easy to use the "website's CMS" in turn around times they have never experienced before.

The code is shocking. The plugin architecture is, well, not really designed at all. Theme design the same. It's just impossible to match it with the number of extensions, the ease of use and my development speed as a result.

> It's just impossible to match it with the number of extensions

It's almost precisely because there's very little uniformity between anything.

It's often much more efficient to just install a new wordpress, migrate some content over and start 'fresh' than it is to modify an existing theme with new functionality; just find a different theme that does what you want and migrate your content and images over to that.

That said, I seem to remember drupal's CCK impressing me some time ago - if that was a default option (IIRC at the time it was a separate plugin) that might have done more for Drupal's "configurability ease" story early on. But.. I may be misremembering with rose-colored glasses.

CCK has been part of Drupal core since version 7 (2011). Now simply known as "fields". Fields+views is simply fantastic compared to what WordPress - including its plugins - gives you. (Views will by the way be in Drupal 8 core.)

In my experience the problem with Drupal is that on the one hand it's too customizable, and on the other it will never beat a proper code-based framework in actual ease of customization.

Because it's so customizable, it's admin interface is too complex for many users. It has to be to be as customizable as it is. And to get a site going you often need to do a whole bunch of work up-front: configuring views, creating content types, taxonomies, rules, workflows, etc. This is often not needed with Wordpress because you just pick a theme, dump in a few plugins if necessary, and it 'works'.

On the other hand, if you really do need all that customization, you're often better off with a proper framework like Ruby on Rails. You can build features in code rather than clicking around the CCK/Fields/Views interfaces, and keep them and other configuration in version control. Most importantly, if you're capable of building complex views and workflows in Drupal, you probably have the ability to do so in code as well. And the latter is generally better in every way if you are capable of it.

Drupal strikes me as the kind of thing that looks good on paper, and that project managers would like, because in theory it can be customized by anyone, and in theory you can build anything you need with it, all without writing code!

In practice, however, you end up paying a lot to get Drupal developers/consultancies to fix whatever mess you're left with. And what do most of these shops do? Use things like the Features module to store everything in code/configuration files, which kind of goes against the whole point of using Drupal in the first place.

The end result is that nobody is really happy, other than perhaps the Drupal consultants who happen to know the ins and outs of the crufty framework/CMS hybrid, and can charge a premium for their knowledge of the dark internals of Drupal.

> I've got to ask. If a builder of websites was looking for something that wasn't horrible and built by smart people, which one would that be?

I hope he doesn't reply NodeJS/Express/Ghost cos the corporate site and blog of Strongloop (main nodejs core contributors and express mantainers) is built with wordpress... And with django and rails core devs we could have another surprise... Who knows...


Not to mention Drupal is its own little disaster.

> I've got to ask. If a builder of websites was looking for something that wasn't horrible and built by smart people, which one would that be?

Looking for one CMS or platform that can fit every kind of website seems strange to me. It'd be sort of like recommending a TV-DVD-DVR combo unit to both your mother who just wants to watch some TV, and to your developer friend who wants a high-performance gaming display.

I've worked primarily with Drupal for the past 8 years. But the clients tend to have very complex needs, including multiple roles and workflows applied to varying content types.

If a client were to come to me and want a blog or a simple brochure site that will be edited by no more than a couple marketing staff, I will tell them Wordpress might be a better option.

Wagtail is looking really, really good. It runs on Django, which is a turn-off for some, but in terms of a friendly, dynamic CMS for editors, it’s shaping up really well.

I agree with you. Our agency (25-30 staff, New Zealand based) recently moved to Wagtail as our preferred CMS. We had contemplated cloud-based solutions (Contentful, Prismic), but a key requirement for many of our clients is to run the solution on their own infrastructure.

The response from our customers (both editors and I.T. teams) has been really positive. For us, Wagtail strikes a nice balance of editor happiness and developer pragmatism.

Since making the move mid-2014, we've implemented Wagtail websites for a bank, an NGO, and some of our private-sector customers. We've built a directory of wagtail websites and developers over at http://madewithwagtail.org/.

It's worth noting that the community is very helpful, and the module ecosystem is growing. There's an API, a static site generator, and a bunch of third-party field types for the editor. Torchbox, Wagtail's developers, are generous with their time and expertise, and we've been able to contribute back to the platform in meaningful ways. A big +1 from me.

> I've got to ask. If a builder of websites was looking for something that wasn't horrible and built by smart people, which one would that be?

As far as WordPress-contenders go, I think OctoberCMS looks very promising. It's dynamic like WordPress, but it natively supports a Git/SVN workflow, so there's less "behind the scenes magic" going on.


One thing that WordPress got right is deployment and automatic updates. It is a nightmare to keep Drupal updated and ensure that nothing is broken.

> It is a nightmare to keep Drupal updated and ensure that nothing is broken.

Except in very rare cases, I've only found that to be the case for websites I've inherited that were built by someone that didn't know how to build a site in Drupal.

This comes from developer and client feedback in poll after poll of WordPress users and developers.

If you've never experienced anything else, of course what you have is always the best.

From my own experience the feedback from users came from people that migrated off Joomla, Drupal, Modx, and Django installations.

OctoberCMS is a pleasure to use.

Firstly, I agree with your firstly - too much nicey nicey is a bit boring.

Secondly, I agree with the OP. In fact I am fairly sure most of HN does because we look at something like Apple where the clear winner is the one who took the time to build the best technology and product together. And yet when we look at poor technology still achieving market dominance we realise something is off kilter - the market signals are not working correctly.

It does matter that the underside of the stone is painted too.

> It's an horrible peace of software, with horrible PHP code 4.x style, a db schema only a beginner could have come up with and an ecosystem with a lot of trash(not even talking about the admin which is hideous ). Yet it's a blazing success in the CMS space, because of 3 things that are insanely overlooked by other CMS developers

You've answered your own question :-D

When you say WordPress is horrible, what you mean is that it's horrible in terms of various things that matter to you -- things like a clean database schema and freedom from legacy code. But what's most important to you is not necessarily what's most important to everyone else, and it turns out that for lots of people ease of use and simple installation on cheap commodity hosting are much more important than what things look like under the hood.

We as developers tend to forget this a lot -- we look at popular products that are technically funky and think "how on earth can that be popular?" But the answer is usually just a reminder that we're not really representative of the market for software in general; we care about things that nobody else does, and are willing to put up with pain points nobody else would.

Perfectly said, nobody cares what is under the hood 99% of the time, its about if it works for their needs and "just works". And, WP kicks ass as flexibility in creating and maintaining an advanced and powerful website.

> It's an horrible peace of software, with horrible PHP code 4.x style, a db schema only a beginner could have come up with and an ecosystem with a lot of trash [...]

I must disagree with these statements. Although it is not the most elegant one I've seen, using the word "horrible" is simply out of place. Have you ever built some sites with it? Do you realize that WordPress is developed in open source with many talented people working on it every day? The DB schema is actually quite flexible, being able to accommodate various kinds of data without many modifications. Apart from that, you can write your own beautiful code according to the newest PHP standards if you want in your WordPress-powered projects. No-one is forcing you to use old versions of PHP.

As far as the success of WP is concerned, I think the reasons for it are very similar to why PHP is successful:

- A huge community with plenty of plugins and themes.

- Supported on basically any hosting service.

- Being free with free updates.

- Refined administration panel with many subtle features like auto-saving posts to Local Storage, which can save your article in case of an accident.

and much more...

I'm not saying that WordPress doesn't have its own issues, however, ignorantly stating that it is "an horrible peace of software" is simply outrageous.

> Apart from that, you can write your own beautiful code according to the newest PHP standards if you want in your WordPress-powered projects.

You really can't. Wordpress actively prevents you from writing beautiful, modern code. When writing themes, every template has to be in the root directory of the theme, creating an awful mess. All of wordpress has global variables and/or state in functions that is simply inescapable, making it impossible to write unit tests. Dependency injection is completely out of the question.

If you want to modify some behaviour and someone hasn't thought of putting in a filter for the exact thing you want to modify, it's not a matter of extending a class and overriding a method. Because wordpress is littered with huge god functions with global state, you basically have to copy/paste hundreds of lines of code and make sure that you keep that up-to-date with core updates yourself to prevent future bugs.

Several times I've gone into plugin development thinking "this must be possible without making too much of a mess", thinking I can separate out the unit-testable bits and write a thin WP wrapping layer that deals with the global state. Every time I've been disappointed.

It's not about PHP versions alone. It's that Wordpress was designed in and for PHP 4, and was never modernized. That's an inescapable fact, regardless of which PHP version your server runs.

I wish this comment was voted higher. There's a lot of misinformation in this thread.

The fact that this is not shows that not many people (here) agree. :)

I personally have no opinion on DB schema because I never looked that deep, but last time I had to deal with WP its codebase was just horrible. And don't get me started on plugins' code quality, it goes to entire other level of "horrible". The project might have a lot of talented contributors, but they seem to be overshadowed by everyone else.

They might have fixed it from the last time I looked of course (though I doubt it, judging by never ending stream of vulnerabilities).

Drupal has that added "benefit" of not being the least bit intuitive to use in any way shape or form unless your brain is wired a certain way. I've experienced this, and have met at least a dozen people of varied skills who feel the same.

So Drupal, like Oracle, is a consultant's dream. Your clients will have to keep coming back to you because the system is so damn complicated to do really basic things.

> So Drupal, like Oracle, is a consultant's dream.

After 7 years of full-time Drupal, I'm pretty convinced that it's intended to be a wealth extraction tool first and a CMS tool second.

"You can build a website with no code! Impress and sell your boss on it in a day! Get far enough down the road to not be able to back out and then spend the next several years of your life trying to hire insanely expensive developers to write all the code you need to write to make your moderately complex functionality needs actually come to life."

>one cannot customize Wordpress without writing more than a few php tags

The tags you need to know to create a basic theme are pretty straightforward, and the market you can reach by learning them is massive: Wordpress is said to power 23% of all websites. If you're a designer who knows HTML and CSS, the learning curve for those templates might be a little bit steeper than for other CMS products, but the number of potential buyers for your theme is dramatically larger.

>It's an horrible peace of software, with horrible PHP code 4.x style, a db schema only a beginner could have come up with

I've been tasked with making Wordpress do things it never should have done, so in service of that I've read a good chunk of the source and I totally agree with this, some of the code is truly abominable.

On the other hand, of everything I've built that has been handed over to clients for content management, Wordpress-backed sites are the clear winners in terms of how much support is required after delivery.

Smart use of custom post types and custom fields, however hideous the code behind them may be, saves time in development, allows you to build an admin that makes sense to non-technical folks, and helps prevent you from re-inventing the wheel for each and every project. It also means that a pretty huge set of developers will be able to pick up your work later on.

Quite frankly, Drupal 7 is a complete nightmare. It's so heavy it has to cache aggressively for even the basic DB operations, and you'll get Mb's of cache in exchange of nothing. The DB schema is so structured that even exporting a table content is extremely difficult to do in plain SQL. You often find PHP code stored in the DB, so taking over a former contractor is pretty hard. The code style is as old school as Wordpress, and so on.

If I had to, I would choose Wordpress over Drupal every day.

If you "often" find PHP code in the DB, you're taking over for some godawful contractors. The PHP filter is rarely used and is even being deprecated from D8.

First thing I remove from D7.

I am working a lot with wordpress lately and let me tell you, it blows my mind too when I see so many clients/businesses using it even though as developers, we see "shitty core with that db schema" as you called it. But then if you continue to think about it, the reason wordpress is so successful is not just because of the ease of installation etc, it is because of the eco-system it has created. I have looked at a few closed source CMS's and in fact been thinking of building my own from scratch, but I keep going back to WP for CMS. It just works and so many clients are already using it or at least "heard" of it.

You can literally setup a decent working website in a day with WP. Want to create pages in WYSIWYG ? Done. Want to manage users ? Done. Wnat to add your social icons ? Oh, there is a plugin for that which is rated by 1000s of other clients. Want to sell stuff ? Np. Add the famous "woocommerce" plugin and you are on your way.

Ok, I made it sound simpler than it can be for users but as developers, it is absolute pleasure when I can setup a client in hours using wordpress and they are on their way.


You can find a theme for $45 that will cost $30K to develop from scratch.

You'll find a few plugins that will do exactly what you want that will cost $50k to develop in-house.

WordPress is great because you have things that will cost you $xx,xxx to develop and they are already available for you at a minuscule cost.

This is a HUGE factor. You can deploy a website customised to your needs, with almost any look and style imaginable (look at the top rated themes on themeforest for example), without a graphic designer or web developer. I do consulting work installing and setting up Wordpress websites, and I and my clients love it for this reason.

You can get themes for $40-60 that give your site the look of something that would take tens of thousands to develop from scratch.

But it must have been great at something else first, because that wasn't the case years ago - it was obviously better at something else some years ago.

The ease of installation, upgrades, and enhancement (plugin installation) was what made it really stand out. It wasn't always as mature as it is now, but it was always a little bit ahead.

I think you missed the benefit where the theming is done in php.

Why would I want to learn an obscure theming language when I can do my theming in one of the best documented, most used languages for web-development?

Wordpress is a hackers dream. You can open the database and understand what is going on, you can make you site do anything because themes are in php, so even if you don't understand how to write a plugin, you can still hack together the functionality you desire.

If more PHP "frameworks" had come with a standard registration/login/password reset system, and a semblance of an administration system that could be customized, Wordpress likely would not have achieved such dominance in the period it did. The PHPNuke family almost had it, but focused too much on copying slashdot vs being a bit more open-ended or content-focused.

The alternatives have been "build-your-own" frameworks with hundreds of libraries but nothing out of the box. When I bring this up, I typically get "but everyone's security needs are different". With WP powering 20%+ of the web right now, that's clearly not true. The dominance of a few oauth systems tied to walled-gardens proves that false even moreso; you, mr senior-enterprise-developer might have extremely-specific use cases (CAS tied to legacy Novell supporting IE5, maybe), but the majority of starter apps need self-registration, email, password, maybe cell token or Facebook registration to get started.

Instead, every single person trying to use almost any major PHP framework has to roll their own security from scratch, which is precisely what we also tell people not to do. I can't tell you how many bizarre hand-rolled security systems I've seen over the years in various PHP frameworks. But hey, they all came bundled with top-of-the-line URL routers and templating libraries...

I completely agree, but the "serious" developers who create the frameworks don't seem to see it this way. I had exactly this discussion with the Symfony community when Symfony2 was released, but got no traction or support for a RAD-framework on top of the Symfony 'framework'.

If you ever see one, in any language, please let me know!

I believe that, even though some of the code is so old, Automattic is doing a great job moving the game forward.

Take the Jetpack plugin for example. It is a super-great plugin with many features that are good and low on memory in the system.

If you take a look at the Jetpack code you'll see some improvements over there.

It will take time to rewrite the whole wordpress code without breaking chances, but for now I can't praise the WP community enough, and Automattic too, for such easy to use product.

The whole wp.com integration (with automatic upgrades and so on) also makes everything much better.

BTW you can also customize wordpress with no code, but you'll have to use a theme for that (Thesis is a great example, if you want to try it).

Also, yes, Drupal might be better from a code perspect, but I always got the feeling that the whole experience was not as good as wordpress.

HN is a developer-community, so I understand here it's just ok to think about how good the code is, but I don't think we should ignore the whole experience, because in the end that's what pays off. Wordpress created a seamless experience from installation to use. Yes, it might be a bit old-style, but it works so beautifully you just enjoy it. Whenever I got a look at Drupal/Joomla administrations I always feel a bit lost, maybe it's just me, but I believe that is the key difference (together with simplicity and plugins) of the wordpress adoption.

Please don't recommend Thesis to folks. :\ Genesis or X are better more modern options.

The more the better :) I just used thesis as an example mostly because I tried it and used it.

No experience with Genesis/X that's why.

This is an awesome comment. It's like a mechanic saying Chevy's are a nightmare under the hood. The percentage of people buying cars that give a fuck is rapidly approaching zero because they never even see it.

Exactly. It's a free car that a ton of people drive and lots of auto shops work on but that German mechanics think is an embarrassment.

Expanding on your analogy, the issue is when you need to start using your free car to safely haul lots of freight across the country in a timely manner, over multiple routes all while providing sound, reliable fleet maintenance with a team of mechanics. Some auto shops will tell you that duct-taping your freight to the roof of your car is just fine, others will tell you that you cannot run a reliable network with this system.

Then you have the massive recall because using it could kill you.

> It's true however that while Wordpress gets a lot of heat from PHP devs, there is no effort from the PHP community to build something like Wordpress with a better codebase, and a better db schema.

That's not true. Several ex-WordPress developers started the Habari Project to build a modern and clean PHP CMS: http://habariproject.org/en/

WP has a huge and massive ecosystem, it is it's own economy. Someone might write something better from a code perspective, but it is going nowhere unless it can gain the critical mass WP did.

Oh, I'm well aware of why the WP hegemony continues. Just wanted to point out that it's not through lack of alternatives.

Drupal is just as horrible as WP with the added bonus of being complicated. Which is why I choose WP over Drupal (when I have to make that choice).

I am not a fan of this acquisition, but I'm really disappointed that this is the most upvoted reply on this story.

It reads like sour grapes, and what's worse is that it has nothing to do with the story itself. I thought the HN mods were actively trying to fix things like this:


> It has a great backward compatibly, unlike other solutions that break everything with each major version.

I'd say this is one of the main reasons. WordPress has made continued steady progress which is really quite remarkable to maintain.

Here's something crazy to me about WP - it stores the site's domain in the database. This makes it incredibly obnoxious to set up a local environment of a live site (or automated CI environments with arbitrary subdomains). I had to hack together a bash script to fire UPDATEs to the db to modify these values.

Drupal on the other hand looks for /sites/$DOMAIN/settings.php, and there's nothing domain-specific in that file (except $base_url, which is optional). Orders of magnitude easier to deal with.

You can change the sites domain within `wp-config.php` too. See http://codex.wordpress.org/Editing_wp-config.php#WordPress_a...

I have never had good luck with that. Some generated URLs still use the DB value and so forth. Perhaps it's an indictment of plugin developers vs WP core. I still cannot think of a good reason for that value to be in the DB at all.

I won't go into detail on that here but know that there's a very good reason for it. Plugin and theme developers should be using for example `esc_url( home_url( '/' ) );` when requiring the URL of the site.

Ok, as someone who's battled with this... feature... of WP I am super curious as to the very good reason for storing the domain in the DB. Why couldn't links be relative (no need to know the domain), or set only as a sitewide variable in wp-config.php?

edit: and just discovered the 'guid' column on the posts table is hardcoded as the URL of the post -- the domain you're on at the time you create the content + the post ID. Seems like a nightmare for content staging on a non-prod environment.

> just discovered the 'guid' column on the posts table is hardcoded as the URL of the post

It comes up every so often. The WordPress devs are well aware of the platform's warts & WTFs. People have talked for a while about replacing it with a proper UUID, but there are way too many themes & plugins that use the guid field to get the post's URL instead of calling, say, get_permalink( $post_id ).

So now the devs are stuck. You can deprecate "guid", but you can't get rid of it. You can't replace the URL with a UUID because of backwards compatibility with third-party code. Do you add a "uuid" column? Now you have a guid column & a uuid column and people are going to get even more confused.

Right now, content staging is a bit of an edge case and folks who need it are able to store a UUID in a post_meta field. So it's not a really critical issue. But it would definitely be nice to see a proper UUID in core.

Some relevant Trac tickets:

Guids No Longer Have Permalink Format (discusses changing the format) https://core.trac.wordpress.org/ticket/6492

Non-URL GUIDs are stripped on post update https://core.trac.wordpress.org/ticket/18395

These are very old and well fought battles:

URLs delivered to the browser should be root-relative https://core.trac.wordpress.org/ticket/17048

WP Development & Production Sites http://lists.automattic.com/pipermail/wp-hackers/2010-Novemb...

Relative vs. Absolute URLs stored in db http://lists.automattic.com/pipermail/wp-hackers/2010-Decemb...

Because of this:

1) Users want to be able to update site-name (etc) from the admin interface.

2) We therefore need to store it somewhere.

3) We have a database!

The alternatives are:

- Storing in wp-config.php (which is also done...), but then it's not user-editable from the admin interface.

- Storing in a INI or JSON or similar document, which has only marginal if any benefits over storing in the database.

For deployment, since the location of the database values is fixed, you can set the variables with your deployment scripts.

Certainly there are configuration options that are appropriate to store in the database, but I'm trying to understand why domain is one of them. The site knows what domain it is on by virtue of being hosted on that domain.

Storing the domain in the DB may be reasonable if it's done once, but WP does it multiple times: WP_SITEURL ("the address where your WordPress core files reside"), WP_HOME ("the address you want people to type in their browser to reach your WordPress blog") and of course GUIDs for every post have the domain hardcoded into their values (that can mess up links in a weird way, where you're on your local environment, click a link, and now you're silently on prod).

I could definitely be missing something, but I can't for the life of me figure out why this is a good idea.

There are only two places where the URL should be stored. Anywhere else is an issue with the plugin or theme storing them incorrectly. Both are contained within the wp_options table for home URL and site URL. Those are the only values required to be changed. If you have a development environment, you should not be migrating the wp-config.php file anyway as it has sensitive information for product sites thus on your dev site you can have a separate wp-config.php file to take into account the new values for home and site URL's.

You aren't missing anything. This problem has been there in WP for a long time, and it makes staging/testing/migration setups a horrible pain (as others have suggested, lots of search & replace).

It's two constants in your dev environment wp-config.php, nothing more.

But, it's stored all over the place, not just a single table or file. All of the URLs on the site get put into the DB as fully qualified. Just today, I had to do a search-and-replace with wp-cli on 26k instances of the domain name in the db.

Not as easy as you make it sound.

Giving users everything they want is a surefire way to build a disaster of a codebase. I have no knowledge of WordPress, that's just a general principle. Users are a bit too silly to trust.

You can use the following constants in the wp-config.php to fix:

define('WP_HOME', 'http://example.com'); define('WP_SITEURL', 'http://example.com');

Download wp-cli. (http://wp-cli.org/)

  wp seach-replace 'old domain' 'new domain'

Absolutely agree with the sentiment.

A few times I had to help out friends customize something I was horrified at the overall level of code quality. It looks as if a B-level programmer started it and C-level programmers helped... And I think this is the crux of it. A-level programmers in general are not interested in such frameworks because they know how to use less friendly ones (and thus don't work on WP & co.) while C-level programmers need such a solution and are willing to help... to the best of their ability of course.

That said, they made WP very convenient to use (great admin console, easy installation, no major headaches... well, apart from vulnerabilities ;). Other projects should learn from that. Who cares about great foundation if UX sucks? (Typo3 anyone?)

EDIT: replaced "C programmers" with "C-level programmers". I am not talking about those who use programming language C. :)

I get that Wordpress is more of a "platform" businesses can build products upon, but who would really want to build on that shitty core,with that db schema?

A lot of people, obviously. You said it yourself.

Many of us have read opinion articles from 30 years ago about how much Unix sucks, or Windows sucks. But they became widespread for a number of reasons -- which led to app developers wanting to develop for that ecosystem. Same here. Wordpress is GPL and runs on almost all hosting providers. The economic incentives to develop commercial and non-commercial themes and plugins for that ecosystem are obvious.

It also works because customers have heard of it and believe that they can edit the sites themselves (in spite of your warnings), so it's much easier to sell. "We'll just put you on WordPress!". Done.

Of course, they never figure out how to edit the site, because the WYSIWYG editor is anything but, and even the text editor "enhances" the html you type in inexplicably. They don't know the difference between a post and a page (or a blog for that matter). So they give up, and wind up hiring you to add content too.

Which is great (yay, money!), but now you have to actually work with this monstrosity and you wind up wishing you had used something like middleman or sinatra like a proper gentleman. But deep down you know that would have been a bad idea as well, because they'd call you in three years to fix the outdated mess that became of your beautiful site after years of neglect. And you'll do it despite not wanting to because they won't be able to find someone else who knows how and that will make you feel guilty.

Meanwhile, WordPress just chugs on, smug in it's mediocrity.

It's really a ghastly creation, if you ask me.

>Of course, they never figure out how to edit the site, because the WYSIWYG editor is anything but, and even the text editor "enhances" the html you type in inexplicably.

That hasn't been my experience with tens of sites and tons of clients I've known. Simple, non IT people, can edit the sites and change content VERY easily.

Oh, and of course MILLIONS of people edit their own posts for their blogs in the hosted wordpress.com, with the exact same editor.

So, I call BS.

BS is s pretty strong word. I would suggest that maybe you have different clients than I do. Most of mine throw their hands up very quickly and just have me do it - if they even try. Maybe 50% don't ever attempt to. Things like adding images and links are a challenge for them, especially when canned themes are involved. Some do fine with just plain text. Most don't. But all in all, most of my clients don't want to even think about a website, let alone edit it.

In that case, I would argue that wordpress is not the issue here. It is your client base that does not want to manage their own website which means they are not ideal wordpress users because wordpress as a CMS means that you the user can at least do some content management yourself.

I have come across many potential clients who say "can you do it all for me, i don't want to do anything" and personally for me, they are not good fits to use wordpress. But when someone says "look I just need an easy to use interface to manage my website, content", then I give them wordpress.

I think you misunderstand what I'm trying to say.

WordPress is great for them. They want WordPress because it makes them comfortable to know they are on a "standard platform". They can hire someone else to maintain it if I get hit by a bus. So it's very easy for me to sell, and hosting companies like Flywheel (https://getflywheel.com) make it very easy to maintain. That was the point I was making - Wordpress is great for business. But, compared to other systems I have used, I find it technically very clumsy.

Usually, clients don't really realize they don't want to touch the site until it's in front of them. If I were certain that they would never want to edit before I started, I would be far less inclined to use WordPress, but might anyhow just because of the hosting/maintenance situation and the brand. I get tired of getting emails asking if I've updated the site for the latest high profile security patch. With Wordpress, I can pretty much ignore them with a quick "got it covered" response, because the (good) hosting companies fix this stuff before the clients are generally aware of it. At worst, I log in and click a button. That's great.

So really, I like WordPress, but only because it makes me money and saves me time. Everything else about it is fairly awful to me. I hate working with it. I hate developing in it. I hate that I have to wade through a sea of crappy plugins to find one that is suitable. And, easy as it is for you and I to edit, it's just too complicated for many of my clients. Sure, some of them are fine with it. But more often the CMS winds up being for me, not them.

This is all just my personal experience slogging through this stuff for the past several years. Milage may vary.

Opposite experience here. Some users like to use gmail to compose their posts (long event listings that they also email) and wp wrecked the html every time. I switched them to Drupal and set-up wysiwyg with ckeditor showed them the paste icon and they couldn't be happier. They thought it was easier to use since they didn't have to go to a separate admin screen to add content, it was all right their for them.

Is Ghost or Jekyll anyway better in terms of tech and other business factors?

I'm genuinely asking here :)

I have handed the CMS keys for Ghost to non-technical people with good results. There's no doubt that it's more limited (especially in terms of plugin ecosystem) than WP, but that lack feels liberating. No need to agonize over which contact form plugin is the right one to go with, etc. And Ghost is certainly snappy [0].

[0]: http://blog.appdynamics.com/nodejs/an-example-of-how-node-js...

Custom code is great if you have staff programmers. If you do not, one of the upsides to WordPress is letting end customers - not the programmers - agonize over which plugins to use.

No idea about Ghost. I found Jekyll to be too limited for client work - but it's been a good 18 months since I used it.

if your clients cant understand the difference between post and page after 5 minutes of explaining, they are clearly nincompoops and no cms will ever be able to put them out of their misery.

WordPress has out of the box experience that clients can wrap their heads around. Drupal requires you to mix modules to basically create your own "plugins" which means more time and a higher price for a client. Wordpress just hits the spot.

I think number one reason of its success are themes and plugins.

The number one reason is because it is FOSS, easy to install, easy to use and easy to extend. The thriving themes and plugins ecosystem is the result of the platform becoming popular because of the aforementioned. If it wasn't FOSS WordPress wouldn't be where it is today.

Of course, but it is in my opinion a consequence of the stable plugin/theme api wordpress has (point 3)

This is a really smart acquisition. WordPress continues to dominate the CMS market. With the upcoming REST API, it's only going to get better. I'm watching niche CMS industry after niche CMS industry crumble under the continual migration to WordPress.

The latest victims are the small CMS vendors who have been selling proprietary CMS solutions to public school districts for the past 15 years, charging far too much money (your U.S. taxpayer dollars!) for barely functional CMS's. The FCC voted recently to prohibit spending federal money on these solutions, a practice that basically created the market, so now every school district in the U.S. (14,000+) are looking around for cheaper and better solutions. A large percentage of them are migrating to WordPress.

Do you have any links about this FCC ruling and school districts? I'm intrigued.

I was interested too (as a former school IT admin), a little googling turned up this:


E-Rate is a major funding source for school Internet connections and is ran by the FCC. The sidebar on that article says:

"Phases out support for some non-broadband services, such as voice services; and eliminates support for others, such as email, Web-hosting, paging, and components of telephone service such as text-messaging and directory assistance."

I'm guessing it relates to that "web-hosting" bit.

Yes, that is exactly right. Public school districts can no longer use E-Rate (federal money) funds to pay for web site hosting or web site management systems. The FCC decided to re-allocate $5 billion in E-Rate funds for a 5-year wifi roll-out plan for all public school districts.

You can read more about the FCC's E-Rate Modernization Order :https://www.fcc.gov/page/summary-second-e-rate-modernization...

I've never heard of this FCC thing you speak of.

And most schools I know are migrating to Drupal.

Drupal is a great platform as well. I work with K-12 school districts every day and the majority are not choosing Drupal because the support and custom Drupal development needed is too expensive. Instead, they are choosing WordPress.

The exception is the higher education market (colleges and universities), who are choosing Drupal over WordPress.

Is this the REST API you are talking about: wp-api.org

Here's a link to a recent update from the Make WordPress Core blog: https://make.wordpress.org/core/2015/05/18/wp-rest-api-versi...

I'm not the OP you're responding to, but that's the link I often see referenced in regards to the REST API.

Hey all. I'm Michael, a Developer Advocate at WooThemes and now Automattic. I'm happy to answer any questions. As you can imagine, we're all really excited about this.

Congratulations and thanks for going with Automattic and not a VC firm.

From Magnus Jepson's blog: http://jepson.no/we-are-joining-automattic/

> We had talks with potential partners, including VC firms and competing companies. This led us to Automattic, who had previously shown great interest in the popularity of WooCommerce. CEO Matt Mullenweg, who is also the co-founder of WordPress, had built his company in the same distributed manner as WooThemes with a team of over 300. This was our dream partner!

Here's a question: do you have any idea of what the first initial changes might be for developer/firms and how we work with WooCommerce/WooThemes/WooMatic?

The WooCommerce eco-system relies on our third-party developers and we will continue working with them. We don't have any immediate changes that would affect developers and agencies. We do plan to introduce a new developer program (a re-imagined Affiliated Woo Workers) to help agencies and developers in the coming months but is unrelated to the acquisition and has been in the works for the last few months.

Sort of unrelated, but still a question: what is the role of a "developer advocate"? Also, it sounds like job roles transferred over one-to-one?

> Also, it sounds like job roles transferred over one-to-one?

Usually when a company merges like this, there's a period just after acquisition where both companies still operate independently while the higher-ups try to figure out the integration plan. That doesn't mean titles/roles won't change, but the same day as the announcement? It'd be business as usual at both companies.

Michael works with other companies to encourage better integration, like payment gateways and shipping tools. It's a new position, but a sure exciting time to be there :)

Congrulations! This is a great step forward for the community and for both parties involved.

As for WooThemes - will we start seeing proper documentation [1] when products are released? I've been bit in the past by something being released by WooThemes, and documentation taking another half year up to year to follow.

[1] http://www.omerkorner.com/2014/09/wheres-api-reference-wooco...

You're right. We could have done a better job at documenting the REST API. We've been slowly introducing and fixing issues with the the REST API since it's debut. We never fully announced it as it was still very much a work in progress. However in WC 2.3 I'm happy to announce we've significantly improved the REST API and documentation.

Without a doubt we're also going to have many more resources joining Automattic and their talented group.

A humble dev is the best kind of dev. :)

After reading your answers, it looks like at this point, you don't have clear visibility into a lot of areas (integration with Wordpress, impact to third party developers, etc) as to what is going to happen in the future. Understandably so.

Do you have any area (like better documentation, which you wrote about) where you have a clear vision about the future? Can you tell us about that? I think that will be more useful.

Does that mean we can expect the WooThemes store to be integrated into Wordpress(.org)? What other integrations can we expect?

There are no immediate plans to do this but you can expect that we'll be discussing the possibility of different ways we can integrate better.

I think it's more likely Woo will end up in Wordress.com and other commercial Automattic enterprises.

And just like that - by acquiring the people behind e-commerce plugin WooCommerce - Automattic has become one of the major e-commerce platform providers. Great move by Automattic.

WooCommerce has already got a big chunk: http://trends.builtwith.com/shop

And they're trending up: http://trends.builtwith.com/shop/WooCommerce

WordPress' API and its limitations are so annoying that I just can't imagine developing for this platform unless you desperately need money. Ideally they develop some new product that is more competitive than the current combination of WP & WC.

The thousands of developers making a living mostly off of WordPress development would probably disagree with you.

It's low hanging fruit, not a lot of effort for decent return.

It's a technical debt trap. You dive in with a one-click install and follow up with a bunch of plugins that seem to fit the bill. Then you spend 2-3x more time creating a custom theme for someone than you would in a sensibly-architected CMS, and only then do you begin to realize that maintenance costs down the road are going to be absolutely crazy. Especially when plugins X and Y start requiring a different theming architecture in production builds, and an immediate update to the latest version is now critical due to a security flaw. Then the plugin you were relying on for sub-task Z is sold to a third party, and while they keep promising to address security and usability issues, somehow you start to receive spam for telecommunications equipment through their support channels.

This actually happened to me. Low-hanging fruit is often a mirage when it comes to the CMS world.

WP is certainly not clean, but it's completely possible to make great sites with it, and it runs a huge number of great sites out there. It sounds like you messed up on a job and are trying to blame someone besides yourself.

You're not the first person to make such a comment. You're also not the first to make such comments without suggesting an alternative CMS that addresses all of your concerns.

>WordPress' API and its limitations are so annoying that I just can't imagine developing for this platform unless you desperately need money.

Yes, it's for professionals. Hobbyists can always use some Haskell web framework.

Implying API limitation and annoyance means professional... Yuck.

Professionals can also use a Haskell web framework. Increasingly so for their day jobs, at least in my case.

>Implying API limitation and annoyance means professional... Yuck.

Yep. One of the signs of a professional over a hobbyist is pragmatism in using his tools.

>Professionals can also use a Haskell web framework

Sure, but not by market demand. And they might also be making their clients a diservice by this choice (e.g. making the project difficult to maintain when he leaves etc).

This is definitely unexpected. I'm guessing Auttomatic + WooThemes + Jetpack + More? is WordPress's answer to fending off the Weebly, Shopify, Wix, etc..

With the coming REST API and possibly some new ways of obviating the dashboard and the TinyMCE editor WordPress is headed in a great direction.

Yeah. REST API + JS front-end frameworks like ReactJS look to be the future.

You forgot ThemeForest, the other big player in selling Wordpress Themes.

I'm a fan of Wordpress but not the templates which are available. They never take performance into consideration. Most wordpress sites are slow primarily Becuase of the frontend performance. 5 css and 10 JavaScript files seems to be the average. As for woothemes it's 2015 and the page where they have announced this acquisition still isn't responsive and they want to take over 51% of the web. Hope they switch gears and innovate.

Yes, same complaint from me, but I think their problem is the target audience, which probably opts for flashy sliders and kitch-sink approaches to design instead of keeping it simple and fast.

However, coincidentally WooThemes offers a theme that advertises itself with something along the lines of "no sliders, no fonts, no bloat" - forgot the name, but it's a good move.

Automattic is definitely a company I wouldn't mind being acquired by. They seem to genuinely put "make cool stuff" before "ecosystem! lock in! billionaires!". Congrats!

That's pretty clever. They're buying WooCommerce, one of the leading eCommerce platforms.

Where are you getting your stats from? I'm interested in the source for said speculation.

From the article :

> here we find ourselves powering over 24% of online stores with our flagship product, WooCommerce

That seems pretty impressive and means they're definitely a top player.

Leading in the (very) small business segment.

I wonder if this will somehow improve the quality of WooThemes' themes?

I'm wondering if the prices will change, if any plugins will be discontinued, how high will yearly markups be, how often will they update the plugins.

Wonder if they'll keep hosting the site at WP Engine...?

Going in not knowing who Automattic is (although I know of WooThemes)... I still don't know who Automattic is.

That seems like basic information I'd expect to see.

Automattic is the company behind Wordpress (and Gravatar and a few other things).

Behind WordPress.com specifically. The WordPress(.org) open-source software project isn't owned by anyone, although both have the same founder and many Automattic employees are contributors to the software.

Interesting. Automattic are the makers of WordPress.

WordPress.com, to be exact. :) We contribute and volunteer a lot for core WordPress.

One of the things I love about HN is you often get the answer right from the "top".

in part a result of HN, but another part from the fact that Matt actually reads into the weeds of HN comments! Awesome!

"A lot" lol.

What's that supposed to mean? They maintain MOST of it.

I got the feeling that he was pointing out "a lot" as quite an understatement :)


No offense, but IMO that devalues an awful lot of work that comes both from independent individuals and other companies that use and invest back into the broader WordPress ecosystem.

Automattic is the company that maintains WordPress core.


The Foundation doesn't oversee core. The Foundation is a legal and financial entity that owns the trademark. WordCamps are run under the Foundation umbrella to protect organizers from lawsuits, audits, etc., but there aren't any employees for the Foundation and there aren't Foundation projects that are specific to core. Core leadership is made up of people from a bunch of different companies (including independent consultancies).

Wise business decision for wordpress.

Free ecommerce framework + lots of paid sub-plugins for years to come.

This will pay for itself.

Any plans for Sensei plugin? My business depends on it and I am a little scared…

Usually an acquisition spells trouble for the product's users, but this is a different kind of situation. I think WooCommerce and Sensei will only get better as a result. The only folk who have to worry is the people building competing products.

Sorry if it was not clear. Sensei, along with all of other other plugins will remain and continue being develop as normal. No need to worry at all. We have a lot of exciting things coming up for Sensei ;)

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact