The File Structure of WordPress


user –> PHP —> Server –> MySQL database

user <– html <–

WordPress 4.2.2 is 21.6 MB for 1311 items (files and folders)

3 main folders in root directory — most of which are php files and some css

1. wp_admin — files for the dashboard — writing posts, moderating comments, installing plugins and themes are done via the WordPress dashboard.  Roles determine what you are allowed to do here.  An administrator is allowed full access followed by the Editor, then the Contributor and finally the Subscriber.  You can access the dashboard via  If you’re not logged in this would bring up the login page.

2. wp_includes  — backend stuff and alot of classes for WordPress to function.

3. wp_content  — three folders:  (modify .htaccess file (hypertext access file) to limit access within this folder)  — this is where most of the changes take place.  When I do my incremental backups I just backup this folder.  Don’t hack the core!

a. themes  — you need at least one theme to operate

b. plugins  — install zero or many

c.  uploads  — all non-textual data stored here — images, videos, audio.

wp-config.php file  — it is recommended that you put this file above your public_html folder or root directory because you don’t want to make this file public.  This is where you put the credentials for WordPress to read and write to the database


  • Header – header.php
  • Sidebar/Menu – sidebar.php
  • Content – index.php, single.php, page.php, category.php, author.php, search.php, etc.
  • Footer – footer.php

comment at top of wp-load.php

* Bootstrap file for setting the ABSPATH constant
* and loading the wp-config.php file. The wp-config.php
* file will then load the wp-settings.php file, which
* will then set up the WordPress environment.
* If the wp-config.php file is not found then an error
* will be displayed asking the visitor to set up the
* wp-config.php file.
* Will also search for wp-config.php in WordPress’ parent
* directory to allow the WordPress directory to remain
* untouched.
* @internal This file must be parsable by PHP4.
* @package WordPress
/** Define ABSPATH as this file’s directory */
define( ‘ABSPATH’, dirname(__FILE__) . ‘/’ );

Wittgenstein and WordPress

Philosophical Grammar by Ludwig Wittgenstein talks about words — with words.  And there lies the conundrum:  talking about words with words, picking yourself up by your bootstraps.

Something that has stood out to me in WordPress is its use of language. What Wittgenstein talks about in his book is the use of language and the meaning of words in different language systems.  A word derives its meaning from its use within its langauge game. The word ‘game’ implies rules.  The rules of grammar.

In the case of WordPress, the words stay the same even tho their usage has changed.  It would be difficult to change to more appropriate words in such a large system that has evolved over time.  There is a drive toward complexification.

WordPress started out as a simple blogging platform.  Then it grew, thanks to the many volunteers who have devoted many hours to what WordPress has become.  It’s a community project — open source.

2001 – b2 cafelog — Michel Valdrighi

2003Matt Mullenweg and Mike Little fork b2 and create WordPress.

2004 – Plugins are introduced with Version 1.2 (Mingus).

The first word we come across is blog.

web log — meaning weblog  (we blog)

meaning:  posting your words, images, videos on the web for the world to see

self publishing, not only in the sense of book publishing — but anything publishing — say what you have to say

it used to be in olden days of yore that publishing had to do with printing or writing on paper

there was a time gap from the time the author wrote the words, submitted them to a publisher, finalized it, printed it, delivered it to book sellers where a person could purchase it and read it

I could be typing these words right now and you could be reading them almost at the same time

publishing is instantaneous

The history of WordPress has determined its vocabulary.  The words have transformed into wider meanings

post    now you may create custom post types.  Post has a post-type of post.  You may think of it as the top parent class of custom post-types.  A page is also a post-type of page.  Posts may have categories which may be hierarchical like a taxonomy.  They may also have tags which are not hierarchical.  Pages may only have tags.

thumbnail —>  featured image

sidebar —> widgetized area

Death is not an event in life: we do not live to experience death. If we take eternity to mean not infinite temporal duration but timelessness, then eternal life belongs to those who live in the present. Our life has no end in the way in which our visual field has no limits.”

— Wittgenstein, Tractatus, 6.431

wp glossary

To understand WordPress we’ll need to understand its terminology and, perhaps, its history.  It started out as a blogging framework.

The Codex History page states:

“WordPress was born out of a desire for an elegant, well-architectured personal publishing system built on PHP and MySQL and licensed under the GPL. It is the official successor of b2/cafelog. WordPress is modern software, but its roots and development go back to 2001. It is a mature and stable product. We hope that by focusing on user experience and web standards we can create a tool different from anything else out there.

2001 – b2 cafelog launched by Michel Valdrighi.

2003 – Matt Mullenweg and Mike Little fork b2 and create WordPress.”

So, to understand WordPress, we need to come to an understanding of the word “post“.

post  –  It is a little confusing at first because this word is used in 2 ways:  1.  as anything that is published.  or  2. as a format type (you may have a post type, a page type, or any number of custom types).

template  – a php file that will be used to display a certain type of file.  For example, if you just stuck to the two basic types:  post  or page, you might have one template for post data and another for page data.

tag – a tag may be thought of as an attribute.  The Codex states:

Unlike Categories, Tags have no hierarchy so there is no Parent->Child relationship like that of Categories. But like Categories, Tag names must be unique.

category – a category is a grouping, or, in mathematical terms, a set.  Categories are like a book’s table of contents, while tags represent the index.

the loop – the loop is where the code gets and displays data from the database. Underlying everything is the mySQL database. This is where the posts, pages, and custom pages live — i.e., in the database.


Post PhoneGap Day in Portland, Oregon

Congratulations to all who put on this fantastic fun day of great phone gap speakers slash comedians, great breakfast and lunch food coffee beer, great hosts and hostesses, great location, great congregation of nerd-geeks from around the world and Portland, too.

The message: Internet access is dominated by mobile devices now, and more so, in the immediate future. Web apps need to be accessed by mobile devices. It would be great to produce a web app and be able to access some of the native features of various devices.

The answer: PhoneGap may be one answer, depending on your needs.

PhoneGap is an open source solution for building cross-platform mobile apps with standards-based Web technologies like HTML, JavaScript, and CSS.

When Computers Are Smarter Than Humans

We all know that computers are already smarter than humans in certain areas: chess, Jeopardy. According to Ray Kurzweil, “The Singularity is Near.” He predicts that computers will equal human intelligence around 2020 and the singularity will occur around 2045. This is the point in time when there will be no distinction between human and machine. I believe him. He makes a good case. I also think that it is good that he puts an optimistic slant on his future vision. In a sense we create our own worlds. I chose to believe in love and hope. I chose to be optimistic.

I just got back from a good presentation on Microinteractions by Dan Saffer in downtown Portland. It made me think about the scene when Star Trek goes back into the 20th century. Scotty tries to talk to the computer and the computer does not communicate back. Someone hands Scotty a mouse and Scotty says, “Oh yes, of course.” He then uses the mouse as a microphone and says, “Computer …”

No reply.

Now, I may ask Siri, “Siri, who discovered Penicillin?” She takes me to a web page. Alexander Fleming, of course.


Microinteractions will involve more and more natural language processing. Computers will eventually become much much smarter than humans. However, I’m not quite sure how all of this will unfold. It seems that people are becoming more and more dependent on computers. That phone, tablet, or desktop are all computers that people are staring at. People are walking around in a trance staring at their small computers. They are attached. They fall onto oncoming train tracks, walk into fountain pools while entranced with their small computers.

You put your hand under the faucet and expect the computer to give you a little water…


“I’m sorry, Dave, I’m afraid I can’t do that.”

What is a Front End Developer?

Generally speaking, the “front end” has to do with what the user or “client” sees and interacts with. The “back end” is the server side of things. Accessing database data. Delivering data to the front end.

The front end is often divided into design and coding. This separation does not have clear boundaries and the designer often does coding and the developer often does some design work. Sometimes the developer is also a designer.

I was a java software engineer for ten years and did a great variety of things: administered some servers, worked with different operating systems, XML, Perl, and the html world, including javascript and css.

It’s beginning to look to me like a front end developer has just as hard a job as someone doing straight Java. Java is homogeneous, simple, and object oriented. The front end world is almost the opposite; it’s the wild wild web. You’re dealing with multitudes of different devices and many different browsers: everything is talking to everything else. The world is connecting itself together in a mesh of chatter. This is where the Front End Developer comes in.

Content ultimately comes from the client. Without content there will not be a web site. (generally speaking)

There may be a person who gets the content, makes a content inventory, and shows the design team.

The designer(s) work(s) with the developer(s). It could be the same person(s).

Front End is what people see, hear, and touch. HTML, CSS, JavaScript.

Frameworks. Skeleton. Various grid systems. Libraries. jQuery. jQuery-mobile.

Many different browsers interpret your code differently. You may not see your site on every device in the device universe, but you will try to hit the major ones that the majority of your users will use. And occasionally your site may fail on a particular device. You, the front end developer are responsible. You fix the problem and move on. You adapt. You respond to a new situation. (Responsive Web Design) You learn and you pass that learning on to your program and, hopefully, future programs.

The front end developer often must deal with many more contingencies than most other types of programmers and, therefore, should be treated with the same respect and appreciation as programmers in other fields or environments.