If you don’t know already, WordPress is kind of a big deal, and it’s about time i give it some credit. WordPress is a completely open source content management system. Being open source it is not only free for anyone to use, the source code is also visible and unencrypted making it easy for anyone which a little scripting knowledge to customize it, or use parts of it elsewhere. A content management system (cms) is a web interface which allows users to manipulate the content of a web site without having to write any code. Even for people who do know what their doing as far as building web pages this is a far better system than manually trying to write each page. I use WordPress for this website and for a few other pages I’m working on right now.

In addition to being free, the system is also very easy to use, and most importantly very well designed. Through the interface I can add or modify posts on my blog, upload images, create pages, manage my categories and links, comments, designs, and just about anything else the average blogger could ever want to do. There is even a visual editing mode (wysiwyg) allowing users to style the content of posts and pages without writing any html. Since WordPress is installed on your own server, although they also have their own hosting service now, you don’t have to worry about annoying ads and logos and a silly looking sub-domain as you would with a service like blogger.

But by far the best aspect is how much can be customized. As far as i know, everything. For non-coders there are myriad themes available that people have built. After uploading a folder to the themes folder you can select it in the design settings and all of your content will be neatly packaged in it’s new style. If you can’t find a theme you like, you can even create your own. After coding the page in html slice it up and using the template tags to instruct WordPress where to put the content, build a wonderfully unique blog, or just a fancy site with a cms. There is also a long list of functions which can be used to organize the data in much more complex ways. PHP is scary, I know, but it’s doable. Pages can also be flagged to be a template and selected within the interface if different pages have drastically different layouts.

So you might be wondering how all these great things work. The simple version is this. WordPress is written in a language called PHP. This is an open source coding language designed for the web. Unlink things like html, css, flash, and javascript which are all rendered by your own web browser on your computer, PHP is rendered on the web server. If you navigate to a page written in PHP your computer sends a request to the server, the server takes that page (which is often largely html) and runs all the PHP script on the page, which usually creates some more html, and sends the whole html page down to you where your browser turns it into something that looks a little nicer than the source code. The second key part of this is a Database. The database is nothing more than a giant spreadsheet. In this case the spreadsheet is used to store all the data about your blog.

Whenever you fill out the information for a new post in the WordPress interface it sends that data to a page which processes it and puts it into the database. Then when someone else clicks on a link to your blog post number 5, their computer sends the request to the server which parses the PHP which says “go get post 5 from the database and put it in this page”. After all that is converted into html, which their computer can read, it’s sent back down to them. And that is the magic of the internet. WordPress also does some other nifty things, for example you can separate the header, footer, and sidebar out of a design and put them in new php documents. Then instead of having the whole header written out in each page a simple php tag will tell the web server when it parses it to get your header file and put it there. This cuts down on server space and more importantly coding time.

PHP is by no means limited to WordPress. Facebook and many other large sites are coded in this way allowing them to be changed constantly without having someone code each individual page. And there are languages used in addition to PHP, but not so free. Really i just wanted to talk about the internet anyway.