Interview with Matt Mullenweg, the WordPress creator

wordpress 1 Comment »

How did the idea to create WordPress come to you and why did you decide to make it a free product?

Matt MullenwegWordPress evolved out of my own desire for a blogging product to make my site better, and a frustration with the existing solutions that I felt were too complicated and hard to use. WordPress was built on the code of an existing GPL product called b2, so it was completely natural for it to continue the GPL license and preserve the freedoms of our users.

How do you make money on it now and what do you plan in the future to earn more?

About 5 years ago I founded a company called Automattic to create commercial services around WordPress that would help grow the market. The first of these was an anti-spam service, Akismet, and we later followed up with WordPress.com, Gravatar, Polldaddy, IntenseDebate, VideoPress, VaultPress, and more to come.

How does your development process work: how many developers do you have, are they full/part time workers, are they located in an office (where?) or are they remote? What IDE and environment do they use to work on WordPress?

There are about 200 active contributors to core WordPress development, all of them volunteers although some are paid by their employers (including Automattic) to contribute to WordPress. There is no set development environment, everyone uses what is most comfortable to them. I have noticed a a definite bias toward using Macs, though.

What influence have WordPress got on the market and how does this affect the competitor produсts (both commercial and free)?

WordPress is definitely one of the largest publishing platforms now, but there are excellent competitors including Blogger. Innovation in the market is good because it keeps us all on our toes.

Starting from 2.3.3 version the biggest part of changes were connected with admin area and look-and-feel, and not with the code optimization. Can we hope that one day the engine will become more robust?

We are constantly rewriting, refactoring, and optimizing the code in WordPress, ofter as much as 10-20% in a single release. Since 2.3.3, probably 95% of the code has been rewritten. This deliberate process of improving the code is better than a massive rewrite because us to test each change more and preserve backward compatibility.

Do you plan to stop to support PHP4 and avoid deprecated.php usage?

Yes, in 2011.

Are there any plans to make plugins approval system more tough? Some public plugins still are of poor quality.

Eventually I’d like to bring more of the review process that we have for themes to the plugin directory, but since we encourage people to host their development on the directory I think we should be open to hosting everything.

Do you reward the plugins and themes developers?

I’m sure many plugin and theme developers are highly rewarded by their work, but we don’t give out money or anything from WordPress.org.

Will you add some more plugins out-the-box apart from Akismet and Hello Dolly?

Probably not.

What do you think on WordPress turning from a blog engine into a full featured website CMS?

This is a pretty natural transition that started with the introduction of the Pages feature and has grown from there. More than half of new WordPress installations aren’t being used as blogs at all.

If you start to write WordPress now from the scratch – what would it look like?

Starting today I would probably leave off some features that aren’t used as much anymore, like a blogroll manager, and focus more on SEO and social integration.

What do you think about such frameworks like ZendFramework, Сodeigniter, Symfony, etc.? Didn’t you think to use it for Wordpress development?

WordPress itself is a framework you can use to build highly advanced and scalable applications.

Which CMS/CMF do you like? What projects did you keep in mind while creating WordPress?

Our about page mentions and links to Textpattern, Movable Type, and Drupal as inspirations

Thank you, Matt!

Several sites on single WordPress installation

development, ideas, php, wordpress 5 Comments »

I have a couple of other WordPress blogs on the same server besides this one. One day I realised that all of them have 3 different WP versions and, as result, different admin areas which is not handy. I decided to make them use the same WordPress installation.

Ok, first of all, I deleted wp-admin and wp-includes folders and created new ones as symbolic links. Though the frontend worked well, I couldn’t log in into admin area, because the browser was redirected to that blog which was the base for all the rest for unknown reason.

The investigation shown, that admin area of WordPress is a separate sub-application, thing in itself, and in my case it resolves the absolute path to its source as the path to the base blog. I wanted each blog to use its own folder because there are config file and uploads folder.

It took me some time to find a solution. It requires two steps.

First, I added this line to the top of the .htaccess to make any PHP request to the blog (the blog front-end and the admin area scripts) call the same script before thier start:

#fix for several sites on the same WP installation
php_value auto_prepend_file "/var/www/site_doc_root/prepend.php"

In this code /var/www/ is the root folder for all my sites, and the site_doc_root is the document root of the current site (folder where all its files are located).

OK, the 2nd step — the contents of the prepend.php script. It is easy — it just must define an absolute path constant which is used all around the WordPress:

<?php
define('ABSPATH', dirname(__FILE__).'/');

OK, after that I decided not to use one of the blogs as source for others, but download a fresh copy of WordPress and make it a source of the symbolic links for all my blogs. This helps to update them.

Then I deleted wp-admin and wp-includes folders and some wp-files and recreated them as symlinks. Attention to wp-config.php — don’t delete it, keep it unique for every site!

To make this task easier, I created setup.sh file, pasted the contents I show below, run this command

chmod 755 setup.sh

then I copied it in every site folder and launched there for every site:


ln -s /var/www/wordpress/wp-admin wp-admin
ln -s /var/www/wordpress/wp-includes wp-includes

ln -s /var/www/wordpress/wp-app.php wp-app.php
ln -s /var/www/wordpress/wp-atom.php wp-atom.php
ln -s /var/www/wordpress/wp-blog-header.php wp-blog-header.php
ln -s /var/www/wordpress/wp-comments-post.php wp-comments-post.php
ln -s /var/www/wordpress/wp-commentsrss2.php wp-commentsrss2.php
ln -s /var/www/wordpress/wp-config-sample.php wp-config-sample.php
ln -s /var/www/wordpress/wp-cron.php wp-cron.php
ln -s /var/www/wordpress/wp-feed.php wp-feed.php
ln -s /var/www/wordpress/wp-links-opml.php wp-links-opml.php
ln -s /var/www/wordpress/wp-load.php wp-load.php
ln -s /var/www/wordpress/wp-login.php wp-login.php
ln -s /var/www/wordpress/wp-mail.php wp-mail.php
ln -s /var/www/wordpress/wp-pass.php wp-pass.php
ln -s /var/www/wordpress/wp-rdf.php wp-rdf.php
ln -s /var/www/wordpress/wp-register.php wp-register.php
ln -s /var/www/wordpress/wp-rss.php wp-rss.php
ln -s /var/www/wordpress/wp-rss2.php wp-rss2.php
ln -s /var/www/wordpress/wp-settings.php wp-settings.php
ln -s /var/www/wordpress/wp-trackback.php wp-trackback.php
ln -s /var/www/wordpress/xmlrpc.php xmlrpc.php

That’s not all 😉

I decided to update my WordPress installation every one or two months.

To do that, in the /var/www/ folder (where all my sites reside) let’s create an update script update_wordpress.sh with the following contents:

wget --timestamping http://wordpress.org/latest.zip
unzip -o latest.zip

This will download a fresh copy of the wordpress if it’s changed (though wordpress team doesn’t show the file Last-Modified header, I think one day they will) and unzip it to /var/www/wordpress/ folder which is the source for our symlinks.

Yes, you got it right — launching this script is all I need to update all my blogs.

Let’s make it periodic:

crontab -e

and then add this line to run the update process automatically every 1st day of every month at 9 AM:

0 9 1 * * /var/www/update_wordpress.sh > mail -s "Wordpress updated" your@email.com

P.S. Of course, SVN checkout can be used for that purpose 🙂

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in