WordPress Theme Development Training Wheels: Day One

WordPress Theme Development Training Wheels: Day One

Tutorial Details
  • Program: WordPress
  • Version (if applicable): 3.2.1
  • Difficulty: Beginner
  • Estimated Completion Time: 30mins
This entry is part 1 of 4 in the series WordPress Theme Development Training Wheels

Ready to learn how to make your first WordPress theme? This tutorial series will take a step by step approach, making use of a "learning theme" affectionately known as WordPress Training Wheels, to help teach the subject. This series will take the absolute WordPress newbie through the basic steps necessary to convert any HTML template into a fully functional WordPress theme.

Learning How to Make a WordPress Theme

Series Introduction!

When I started using WordPress back in 2006, there weren’t very many tutorials around back then on where to start with Theme Development.

I learned the hard way, through trial and error, mining the WordPress codex, as well as from the few tuts which had existed back then. For the last 2 – 3 Years I’ve been teaching basic WordPress theme development on and off, and have noticed that, for those not extremely familiar with Content Management Systems, most of the tutorials which exist to teach development from scratch are way too complicated.

So, I have developed a step by step approach, making use of a “learning theme” affectionately known as WordPress Training Wheels, that will take the complete WordPress newbie through the basic steps necessary to convert any HTML template into a fully functional WordPress theme. We’re going to start out slowly though, specifically for those who don’t have the luxury of previous experience working with CMS code or PHP for that matter. Hence the name, “Training Wheels”. Hardcore coders step aside, we’re about to clear the race track!

Training Wheels Screenshot
A peek at the preliminary theme that we’ll be building on over the series. It’s not meant to be visually fantastic, it’s meant to be educationally fantastic! Don’t worry – once we’re done, you’ll be on to bigger and better themes in no time.

Our focus will be mainly on the WordPress code, not design. So the template is purposely simplistic with some light styling so you don’t ride your bike off a cliff out of boredom.


For a really great intro to web development using HTML & CSS, check out the Net Tuts tutorial series – Web Development From Scratch

Prerequisites:

Additional Details

WordPress Themes are essentially Plain HTML Templates, with little bits of WordPress specific PHP tags thrown into areas where dynamic content needs to be loaded from the database. For this reason a good understanding of HTML would be necessary to follow through with this series.


Step 1 – Install WordPress

WordPress themes, though primarily made up of HTML, are not able to display by default in your browser due to the PHP which they contain, which changes the way they function. They need to be run through a server which is able to interpret PHP code, which is why it’s essential to work on a PHP capable web server when developing WordPress Themes.

We’ll be skipping over the installation process for WordPress for now as our focus is going to be purely on Theme Development. I’ve linked to an Excellent Video Tutorial on installing WordPress on a live server. Tons more can be found online for both Live and Virtual Servers.

“A Virtual Server is essentially a server running on your local desktop machine and can be setup using MAMP(mac), XAMPP(mac & windows) or WAMP(windows).”

To learn how to install WordPress locally on a virtual server check out the following Video.

The installation process essentially entails:

  1. Creating a Database, as well as a Database User and it’s associated Password
  2. Uploading the WordPress files, downloadable from WordPress.org
  3. Editing the wp-config.php file so it contains the database name, username, password and mysql server details
  4. Running the installation script found at www.yoursite.com/wp-admin/install.php

They Don’t call it the Famous 5 minute install for nothing. In fact, if you’ve done it enough times it takes less than 5 minutes.


Step 2 – Preparing The Files

Check out www.freecss templates.org for a ton of templates which are perfect for getting started and are already geared towards being used as WordPress themes.

Once you have your test installation of WordPress running, you’ll need a basic HTML template (index.html) with a stylesheet (style.css). I’d encourage anyone learning the HTML to WordPress conversion process to practice by downloading simple free HTML & CSS templates and converting a few for practice.

I’m going to be using the WordPress Training Wheels Theme for the duration of this tutorial series and I urge you to do the same so we’re not peddling in different directions to begin with. The Training Wheels theme is a bare bones template, nothing racy or flashy, but contains all the familiar components of a typical WordPress Theme, i.e.. Header, Menu, Sidebars, Content Column & Footer. The Theme will be named training-wheels-0.0 in the beginning, and the name will steadily change as we add more code and progress is towards being a fully fledged theme. At the end of this lesson the name will change to training-wheels-0.1

Have a look at the basic HTML structure below. Very simple.

HTML Structure

Naming your starter files

Should your starter files not be named according to the manner mentioned above, you will need to rename them. WordPress Requires files with these names as the bare minimum for a theme to be functional. Additionally we’ll have an images folder to keep any images neatly tucked out of our way.

  • home.html » index.html
  • mystyles.css » style.css

Changing File Extensions

The file index.html, which will be the base structure for the theme needs to be renamed to index.php. I always recommend keeping a copy of index.html on the side though, in case anything goes wonky as is bound to happen. Think of it as a spare tire in case you experience a tire burst. Confession: even after years of theme development I still do really dumb things, especially after midnight, when my brain can no longer function but the coffee is keeping me going.

We end up with the following. Mine are housed in the folder called training-wheels-0.0

strater files

Step 3 – Stylesheet Header Comment

If you’ve ever tried adding a plain HTML template into the WordPress themes directory, you’d notice that it doesn’t show up in the options for activating themes. With older versions of WordPress you would also find that if your stylesheet did not contain the stylesheet comment below, an error message would appear. This is because WordPress used the CSS comment snippet found below to register your theme as a valid WordPress theme. Currently it’s no longer necessary to have this comment for your theme to register, but your theme would appear without any details, other than the folder name as seen below.

Personalize your theme with the stylesheet comment

The code below should be modified to contain your own unique details as well as unique information about the theme you’re creating.

/*
	Theme Name: 
	Theme URI: 
	Description: 
	Version: 
	Author: 
	Author URI: 
*/

With details from my Training Wheels Theme included, it would look like this:

/* 
	Theme Name: Training Wheels
	Theme URI: http://www.wpbedouine.com
	Description: A theme to learn WordPress Theme Development from Scratch
	Version: 0.1
	Author: Nur Ahmad Furlong
	Author URI: http://www.nomad-one.com
*/

There are some additional parameters that can be added, especially if you’re considering releasing your theme to the public, selling it, or loading it onto the official wordpress.org themes directory.

Twenty Eleven Theme Stylesheet Comment

An example of a more fleshed out stylesheet comment to provide as much detail as possible about the theme can be found in the twenty eleven default theme. As you can see some additional tag information to help users when searching for specific types of themes via the dashboard theme search or on the themes directory is present. A detailed description as well some some theme licensing information are included. We’ll be ignoring these for this exercise.

/*
  Theme Name: Twenty Eleven
  Theme URI: http://wordpress.org/extend/themes/twentyeleven
  Author: the WordPress team
  Author URI: http://wordpress.org/
  Description: The 2011 theme for WordPress is sophisticated, lightweight, and adaptable. Make it yours with a custom menu, header image, and background -- then go further with available theme options for light or dark color scheme, custom link colors, and three layout choices. Twenty Eleven comes equipped with a Showcase page template that transforms your front page into a showcase to show off your best content, widget support galore (sidebar, three footer areas, and a Showcase page widget area), and a custom "Ephemera" widget to display your Aside, Link, Quote, or Status posts. Included are styles for print and for the admin editor, support for featured images (as custom header images on posts and pages and as large images on featured "sticky" posts), and special styles for six different post formats.
  Version: 1.2
  License: GNU General Public License
  License URI: license.txt
  Tags: dark, light, white, black, gray, one-column, two-columns, left-sidebar, right-sidebar, fixed-width, flexible-width, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-image-header, featured-images, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready
*/

Once you’ve got your Stylesheet comments in place, your theme is now ready to be activated via the WordPress Administration Dashboard, under Appearance » Themes


Step 4 – Creating a Screenshot

In order to help yourself and other users of the theme to quickly recognize the theme in the themes installation area of the dashboard, provision has been made for a screenshot.png image to be automatically displayed if found in the root of your theme’s folder.

Ideally you’d want to have a screenshot which gives a good representation of what the theme looks like. I find many theme designers include a logo here, which doesn’t always help the end user identify the theme they’re looking for, especially in the case where the user has tons of themes already installed, quite a common occurrence I believe.

The screenshot.png should be 240px X 180px, which is the size used for the thumbnail within the dashboard. You can insert a different size but the image will be resized to fit into those dimensions. Best to stick with the correct size first time around for an optimal display and page load experience.

Theme Screenshot

Step 5 - Your First PHP Tag

Before we go any further, we need to orientate ourselves a bit with the structure of the PHP development language, and more importantly the structure of WordPress specific PHP. The PHP used in WordPress themes by and large, is customized specifically to work within the WordPress environment only. We’ll start with the containing structure of any PHP code, like with HTML having the brackets alone, PHP code is wrapped in.

<?php    ?>

Inside the Brackets is where all the functionality takes place, with code we generally refer to at PHP functions. Always ensure that a space exists between the containing tag’s and the inner PHP code. The simplest of these functions we’ll be dealing with is the bloginfo(); function. Notice that after the name of the function, we have 2 rounded brackets, opening and closing, with a semi colon at the end, closes off the function and in many cases is essential. The rounded brackets will sometimes end up containing some additional parameters, to tell the bloginfo(); function, specifically what it needs to do.

Some WordPress functions don’t need parameters within the rounded brackets to perform a function, though they may optionally have some to make their function more specific. The bloginfo(); parameter however, needs one just to function at all. We’ll get to some of the additional functions which work without parameters as time passes.

Site Name

<?php bloginfo('name'); ?>

Notice how the word name, is written with single quote marks around it within the rounded brackets.

is the code which we use in place of the name of the site, wherever we’d like that name to appear in our template. For instance, wherever I have written "WordPress Training Wheels" I could simply replace that text with the that function.

Pay careful attention to the structure of this function, as the rest of the WordPress code follows a similar structure throughout. Leaving out an essential part, like the rounded brackets, the semi colon after the rounded brackets, or the space between php and the word bloginfo, will result in your code not working correctly. In some cases this could kill your entire page. I know, it’s a pain to be that careful, but developing good habits early on helps. Obey the rules of the road and your journey will be way less bumpy.

When the WordPress site running this function loads, WordPress queries the database and finds the name which you have inserted in the Blog Name field under Settings » General.

General Site Settings

It’s also the name you insert in the very beginning when you run the installation for setting up WordPress the first time. Changing this name in the General Settings will result in your template reflecting that change immediately. This is essentially how WordPress, or any other Content Management System for that matter works. Dynamic tags replace static contents so that contents can be managed via the administration interface instead of directly editing the templates.

Your Theme is still not quite ready to be registered within WordPress. It’s missing one essential step which allows WordPress to display your theme correctly.


Step 6 – Linking Your Main CSS With WordPress

A few steps back our index.html was easily able to link to it’s accompanying stylesheet, because they are located in the same folder and merely inserting the name of the stylesheet file within the stylesheet link would suffice. This is no longer the case though. WordPress themes don’t reside at the root level of the site, as they are installed in the wp-content » themes folder within the WordPress software.

As you can see below when activating the theme currently, we’re still not seeing the full picture. Though the HTML structure loads, the stylesheet is not being linked, which results in an unstyled page.

Without explaining too much detail about how WordPress goes about calling the templates from within those folders, we need to be aware now that files can no longer be linked to as easily as we linked to them in simple HTML sites. We need to use some additional WordPress functions to fill in the steps between the root directory and the currently activated theme’s folder. We do this with the help of another bloginfo(); function, this time detecting the URL to the currently activated theme’s stylesheet. No matter what the name of the theme folder, WordPress will now fill in the blanks and insert the path to the style.css file.

<?php bloginfo('stylesheet_url'); ?>

This function is inserted into the stylesheet link tag

<link href="style.css" rel="stylesheet" type="text/css" />

which now becomes

<link href="<?php bloginfo('stylesheet_url'); ?>" rel="stylesheet" type="text/css" />

If you inspect your source code using view source or with something like firebug, you’ll see WordPress includes the full pathway from the root of the site all the way to the stylesheet. The root folder of my example site is located at http://www.wpbedouine.com/training-wheels/. WordPress therefore generates:

<link href="http://www.wpbedouine.com/training-wheels/wp-content/themes/training-wheels-0.1/style.css" rel="stylesheet" type="text/css"/>

The same stylesheet_url function will auto insert the path to any currently activated theme in the same manner, without any source code being edited. You’ll see a pattern emerging, with bits of hard coded contents being replaced by dynamic functions which pull data from the database on the fly.

Feel that air rushing through your hair now? Don’t worry, the training wheels will come off soon! I Promise.


Step 7 – Adding your files to WordPress

Place your index.php and style.css files into their own folder, named based on what you want the theme to be named and then uploaded to your wp-content » themes folder within your live or virtual host version of your WordPress installation as seen below.


Step 8 – Activating your Theme

And without further ado, go to Appearance » Themes and click activate under your newly created theme. For the rest of the readers on this site, these steps might have been annoyingly simple, but I personally know the feeling of finally clicking with this process and having my very first theme activate within WordPress. It’s priceless for the newbie.


Step 9 – A Few Extra Dynamic Pieces of Content

Before we finish off, let’s use a few additional, very simple bloginfo(); functions to fill in dynamic content. We’ve already introduced the bloginfo(‘name’); and bloginfo(‘stylesheet_url’);. Below we have the initial HTML for the header div of our theme.

	<div id="header"><!-- Header Begins Here -->
	  <h1>
			<a href="#">
				WordPress Training Wheels
			</a>
		</h1>
	  <h2>A Little help to get you free wheeling with WordPress</h2>
	</div>

We’ll replace the Contents of the H1 link href attribute, which currently just has a hash symbol and would usually look like href="home.html", with the bloginfo(‘url’); function.

	<h1>
	    <a href="<?php bloginfo('url'); ?>">
	        <?php bloginfo('name'); ?>
	    </a>
	</h1>

Additionally we’ll replace the h2 tagline below the site name with:

	<?php bloginfo('description'); ?>

so our code snippet now looks much more wordpressish.

	<div id="header"><!-- Header Begins Here -->
		<h1>
			<a href="<?php bloginfo('url'); ?>">
				<?php bloginfo('name'); ?>
			</a>
		</h1>
	  <h2><?php bloginfo('description'); ?></h2>
	</div>

One last issue to resolve is the link to the content image in the middle column of the template. Similar to the issue of linking the stylesheet, we need to use another bloginfo(); function to fill in the image pathway as images/imagename.jpg will no longer work.

	<div id="middle-column"><!-- Main Content Begins Here -->
		<h3>Training Wheels Lesson 1</h3>
		<p><img src="images/training-wheels.jpg" width="426" height="142" alt="Training Wheels" /></p>
	</div>
Broken Image

To solve this problem we use the following code before calling the images directory

<?php bloginfo('template_directory'); ?>

So we’ll end up with the following.

	<div id="middle-column"><!-- Main Content Begins Here -->
		<h3>Training Wheels Lesson 1</h3>
		<p><img src="<?php bloginfo('template_directory'); ?>/images/training-wheels.jpg" width="426" height="142" alt="Training Wheels" /></p>
	</div>

Pay careful attention to the forwardslash just after the closing bracket and before the name of the images folder!


Step 10 – A wrap-up of the process we covered

  1. Install WordPress on local or live server
  2. Preparing your HTML files by renaming them
  3. Include and edit your stylesheet’s header comment
  4. Creating a screenshot.png preview of your theme
  5. Get to grips with the basic WordPress PHP code structure
  6. Re-linking your stylesheet the WordPress way with bloginfo(‘stylesheet_url’);
  7. Adding your files to the wp-content > themes folder
  8. Activating your theme in the dashboard under Appearance > Themes
  9. Adding a few extra bloginfo functions for dynamic contents.
    • bloginfo('name');
    • bloginfo('url');
    • bloginfo('description');
    • bloginfo('template_directory');

The bloginfo(); function has a ton of uses to generate various pieces of content from within your site.
For a more comprehensive list of parameters for bloginfo(); check out the WordPress Codex Documentation on this function – http://codex.wordpress.org/Function_Reference/bloginfo.

Another excellent resource for the many WordPress functions is the DBS Interactive WordPress Tag Reference which is essentially a neater and more orderly presentation of the code listed within the WordPress Codex.

I’ve added snippets of the code covered in this lesson to my snipplr account.

DBS Interactive WordPress Functions Reference

Free wheeling with WordPress soon to follow. I hear those training wheels rattling to come off :)


Other parts in this series:WordPress Theme Development Training Wheels: Day Two
Note: Want to add some source code? Type <pre><code> before it and </code></pre> after it. Find out more
  • Sleeman

    Hi there …. why there is no video tutorial also ?

    • http://www.nomad-one.com nomadone

      After Gauging some response to the written tutorials I may consider prepping some Video Screencasts as well.

      • http://todvenn.co.uk Tod

        A video course would be great, I don’t suppose you know roughly when the wordpress premium course is due to be released? I heard wind of it, but have seen no dates. I understand that the editor of wp tuts is on the case though?

        Got to love visual learning.

        • Caroline

          Must admit I far prefer this reading-style learning, I can flick back and forward more easily than with a video. This tutorial is already *way* better than the book I bought. Thank you.

  • http://www.plan-zero.org Cristopher Ocana

    Really nice tutorial for beginners I only have one comment, It’s better to use than

    :)

  • http://brocknunn.com Brock Nunn

    I seriously cannot thank you enough for getting back to the basics and doing this tut. I really need to sharpen my cms skills. Really looking forward to the following posts, great work!

  • William Rouse

    Seems the download link is broken. I get accessed denied.

  • http://theme.fm Konstantin Kovshenin

    Great tutorial Nur, although using bloginfo() for some of the stuff you mention is deprecated, so you should use things like home_url(‘/’); for the home link, get_stylesheet_uri() for the style.css file, get_template_directory_url(); for the template directory and so on.

    Also, the Twenty Eleven stylesheet header display is broken for some reason, and bloginfo(URL); give an error since the URL constant is undefined. Also bloginfo(‘URL’) will not work either and my guess is that you were going for bloginfo(‘home’); which is equivalent to home_url().

    Thanks again for such a great tutorial and keep them coming!
    ~ K

    • http://www.nomad-one.com nomadone

      Hi Konstantine.

      Thanks a ton for picking up the bloginfo(URL); typo, it should be bloginfo(‘url’);
      That definitely needs to be fixed asap. You’ve got sharp WP eyes :) thanks for the headsup

      Something about the formatting of the twenty eleven header messed up the formatting. First time I use the Envato template so my bad there.

      Regarding the deprecated functions. The aim with this first intro tut was to introduce those who have never used a WordPress function to a very basic function, and bloginfo(); lends itself very nicely to that. The functions still work fine and won’t break anything so for this intro it should be ok.

      Do you foresee the use of these functions breaking anything?

      They’re still being used in the codex, not enough info on when to ditch these as far as I can find. I suppose you’ve been spending more time than the rest of us on the core trac developments.

      I’m getting these directly from the wp codex on the bloginfo(); function – http://codex.wordpress.org/Function_Reference/bloginfo

      Maybe you can share some notes with us on what problem might result in using the older functions at this point.

  • http://twitter.com/MichealKennedy Mike Kennedy

    Great tutorial! For beginners, I’d recommend making a child theme – it’s quicker to begin, and a great way to quickly dive in and see your changes live.

    • http://texxsmith.com texxs

      I’ve always found child themes to just make things harder. Too many places to find the css code, images, scripts etc. To keep things simple me and my crew just make a copy of the theme, rename it upload it and edit it. We keep the original as a backup & reference…

      I see that child themes are popular but for the life of me can’t figure out why. I MUST be missing something!

      • http://webenvelopment.com Ben Racicot

        Completely agree. I don’t understand why it would be worth the time for anyone to learn the in’s and out’s of child themes. Far to complex for it’s explained uses… at least to me.

  • D.

    Finally a basic, understandable approuch for the beginner (with little to no experience in creating dynamic sites)… I myself had to find out things the hard way. Will follow these “basic” sessions, to fill in the remaining gaps…

    Very well done!

  • Pingback: WordPress Cheat Sheets: Theme Anatomy Model | Wptuts+

  • Pingback: My Stream » WordPress Cheat Sheets: Theme Anatomy Model

  • josed

    Sorry if this is answered but, this is for a blog correct? Are you going to explain how to do a static homepage with static pages with a blog page?

  • dj

    This is one type of tutorial which “screams” for a video tutorial. It’s obviously for newbies and covers information which is BEST learned by seeing it done! @Brandon — A thing to consider is that Jeff Way grew Nettuts+ into a blog with over 80,000 subscribers pretty much on the back of well delivered video tutorials – most of them covering basic information delivered in a hands-on way. Not sure where he’s gone to now and the videos are getting pretty sparse on that site BUT that’s what jump-started it and where the money still is. [Although, you'll need to do some careful selection as the editor because there seem to be a lot of "willing" authors who really aren't good teachers; and allowing the posting of broken links and suggesting depreciated code is terribly confusing and distracting especially for beginners. A thought might be to obtain a "newbie guest editor" to actually read and attempt the proposed tut before it goes into production in order to check for clarity from a "newbies" standpoint.]

    <strong)That said: the subject of WordPress basic's, especially since the new version has come out, is a great idea! The the Google search of current content of the WWW is bloated with outdated and poorly described information severely lacking in a clear step by step, here’s how to do it approach for beginners. [BUT, please don't make this about the tired old 900 fixed width, down-the-center stuff that everyone has done for years. No one needs that any more. And from my flailing around with the new WP theme, I'd just like to feel like I had a handle on what all the various templates that they already had pre-programed did.]

    • dj

      Sure wish Envato had a way for a person to go back and edit their posts as done on other sites – these silly keys don’t always code the letters that my brain tells them to!

      • Brandon Jones

        I’ll add it to the redesign requests (my own personal request list hits the floor though ;), hehe).

  • http://www.customicondesign.com/ custom icon design

    very nice tutorial for beginner wp users, even though most of knowledge is masterd by me. but it’s very useful for the beginners I am sure. Bill

  • http://flashjourney.com/ Mahfoodh

    Hi Nur,
    Very interesting and long awaited topic I am sure by many (I am one of them). However, I noticed in your HTML bare structure you omitted the HTML and head tags and what goes in between. I am assuming this is included in the downloadable files. On the same topic; are you going to focus on HTML5 like the Twenty Eleven theme structure, as I think that would be more appropriate for the current releases of WordPress.

    I also agree with @Konstantine on his suggestion to try to avoid the usage of deprecated functions.

    Nevertheless, great effort.

    • http://www.nomad-one.com nomadone

      Thanks Mahfoodh, the screenshot of the code was more to show the structure of the divs so readers can get a quick idea of what we’ll be working with. The code includes HTML & HEAD tags of course.

      Regarding HTML 5, it’s currently a little bit more complicated to implement especially for certain beginners, so I’m sticking with simple examples at this point that work in most browsers to avoid adding additional levels of complication. The HTML structure however won’t really be the focus of the series unless it ties in directly with explaining how certain WordPress functions generate HTML.

      The same processes can be easily applied to all types of HTML structures.

      Regarding the bloginfo(); tags mentioned, we’ll be getting into some more advanced tags as time passes. The intro tut was purposely kept as simple as possible.

  • http://www.jeffadams.co.uk Jeff Adams

    I hate to be so melodramatic but THANKS SO MUCH!!!!

    I’m perfectly fine coding up HTML/CSS but no-one really caters for tutorials where all you want to do is figure out how to convert your theme to a WordPress theme – and I mean by starting with the very basics which are essential.

    Thanks so much, please keep on with these I really enjoyed following it through.

    A video would have been great but to be honest I’d rather you cranked these out quicker rather than worrying about the accompanying video.

    Requests on how to put posts in a particular placeon the page, teh WordPress loop for posts etc.

    Awesome. Really can’t thank you enuogh!

  • Pingback: DDMDWGGH: Sticky Thing, Bollywood Action, F1 POV und vieles mehr | cmff.de

  • Pingback: WordPress Cheat Sheets: Template Heirarchy Map | Wptuts+

  • Pingback: Best of Tuts+ in October | Wptuts+

  • noekidotcom

    Great article, I’m just starting to understand how wordpress works, so I’m a clear target for this kind of tutorial approach… Konstantin Kovshenin’s comments left me wondering and worried though, as I tried to make the newer functions he mentions work to no avail… :-( Hope things will become clear in future tuts… A big thank you for the effort anyway, and looking forward for more!

  • Pingback: Best of Tuts+ in October

  • Pingback: Best of Tuts+ in October | linuxin.ro

  • Pingback: Best of Tuts+ in October | clickshots

  • Pingback: Best of Tuts+ in October « Fast Ninja Blog by Freelanceful – Web Design | Coding | Freelancing

  • Pingback: Best of Tuts+ in October | Inspirations, dreams, humaniora

  • Pingback: Best of Tuts+ in October | Shadowtek | Hosting and Design Solutions

  • Pingback: WordPress Cheat Sheets (III): Theme Anatomy Model | Web Help 101

  • bhavesh0409

    nice tutorial. but this is just the basic. can u tell me when are you going to do the second part in which you can show how the pages can be fully functioned and managed from backend. the dynamic menus.

    can u even do more better by making a tutorial in a simpler manner as converting psd to html to worpress if possible. i’m very eager to learn that and i found that you explain things very nicely and in a simple manner for end users who are tryin to learn from scratch. thnx. will be waiting for your response.

    • http://www.nomad-one.com nomadone

      For those who are interested in getting to grips with the HTML side fo things, Net Tuts has just released a premium tutorial series to help you get going with HTML & CSS development. Used in conjunction with Training Wheels you’ll be ready to dev your own themes in no time at all.

      http://learncss.tutsplus.com/

  • supprof1

    while($(this)).tutorial is a video tutorial?!!!
    thank you even i’ll not read it
    i hope we’ll se one video tutorial how to create a wordpress theme
    thank you very mucth

    • http://blog.texxsmith.com texxs

      You can’t copy and paste from a video . . .

  • http://blog.texxsmith.com texxs

    ACK! I’ve been “nofollowed!” How rude. I wouldn’t do that to you on my blog…

  • http://rafaljankos.com/ Rafal

    Till now wp template dev was for me like black magic… I did know nothing about :)

    Many thanks!

  • oliverosm

    Nice tut Thanks for that, video or not I think its really helpful. I don’t understand why so many comments on the matter of the bloginfo(); if its for beginner, you guys should understand and like he said at the beginning for newbies.

  • Linda

    When is day two coming? Also, any advice on how (or whether it’s best) to integrate Blueprint CSS with WordPress? “Advanced beginner” here — came from a Smashing Magazine post. :) Thanks for this tutorial!

    • http://www.nomad-one.com nomadone

      Hi Linda, The really great thing about WordPress is you can develop Theme’s using any HTML structure or framework. You will however require a working understanding of HTML as you will need to be able to determine where the WordPress code fits into the HTML structures.

      Using Blueprint should be fine.

      The Following tutorial gives some insight into how to integrate Blueprint CSS with a Theme – http://a.parsons.edu/~zeravivm/s10/osd/jkhurd1/05/04/installing-blueprint-in-thematic/

      I have purposely kept the HTML part of our Training Wheels theme extremely simple so it doesn’t distract learners from what they need to focus on for the WordPress part of the exercises.

      I would also recommend the 960 grid system, which makes creating layouts in HTML dead easy.

  • Ziad Rahhal

    Hi,

    It is a smooth tutorial, but if day two is not coming, I suggest you update this one in order to include the very important “loop”. Without it, everything is still static.

    A very simple loop would do good for newbies I guess.

    • http://www.nomad-one.com nomadone

      Hi Ziad, the next tutorial is in the queue and will cover Menus. Diving into the Loop immediately for beginners will most certainly confuse certain people especially considering we’ve only covered the real basics. The Loop will definitely be covered but there are a few essential elements which are simpler which need to be understood first.

  • Techeese

    Thanks for the tut but still a bit foggy for me, not because of the codes but the whole wordpress thing. I guess I need extra more lessons to fully understand it

    Thanks again, hope Day 2 comes…

  • Younis

    Hey, Thanks for the helpful tutorial i find this lot easier to understand theme elements, looking forward for day 2

  • Pingback: WordPress Theme Development Training Wheels: Day Two (Menus) | Wptuts+

  • Pingback: My Stream » WordPress Theme Development Training Wheels: Day Two

  • http://www.sawpanse.com Kenold

    Great tutorial. You should make a PDF version so it’s easier to download or print ;-)

  • Pingback: 30 Usefull WordPress Theme Tutorial | WordpressRadar.com - The Best Collection of Wordpress Tutorials on the Web

  • http://tipsfortechno.com tipsfortechno

    I need video lesson.

  • http://motorcityrocks.com Steve

    At the top of the page is says this is tutorial 2 of 2, but this tutorial is actually 1 of 2.

  • OnlineAnonymous

    Superb tutorial, I like your approach to convert from HTML to WordPress, I followed all instructions w/o a single bump along the way! You’re awesome, keep up the good work! :)

  • Pingback: WordPress Theme Development Training Wheels: Day One | 備忘録

  • http://osuitmultimedia.com/tsoto tavo

    You just made my day with this!! I am a multimedia student in web and we are doing a cms website for the first time. I am trying to make my portfolio site for internship and you just made my day! thank you so much!!!

  • Pingback: 15 Tutorials To Help You Build WordPress Themes « Simpler Designs

  • Chad

    I gave in and have started to learn WordPress as a CMS. After trying a dozen or so other CMS’s, the plugins are what’s calling me :) I like your writing style and encouragement through the tutorial and btw, I actually prefer written tutorials over video ANY day! So please, keep both if you do decide to go video.

    Thank you for your hard work.

  • http://www.nomad-one.com nomad-one

    Thanks to all those who commented so positively, I’m glad the tut has made a difference and suites your learning style. I also stumbled through theme development when I first started and can recall only a handful of very well written very basic tuts which made all the difference in my basic understanding.

    Keep in touch with me if you finally get moving into WordPress Theme dev, I’d love to see what you’re all building and how you’re fairing in the WP space.

  • Jim

    Hello!

    First of all, THANK YOU! Amazing tutorial!

    However, there is one thing that concerns me much, it’s not specifically related to WP though.
    I’ve noticed in your markup multiple instances of id=”sidebar”, on two different divs.
    I know, they are both, in fact, sidebars and they are distinguished by respective classes, .left and .right.

    But still, I was raised in belief that id is meant to be used with one element ONLY and whenever we want to set a specific style for multiple elements, we use classes. Is it wrong? Are multiple id instances allowed and in use? If yes, what’s their exact purpose?

    In this particular situation I’d simply use and , attached these .sidebar, .left and .right classes and voila!

    Is there some reasoning behind that solution? I’m very outdated when it comes to HTML, just came “back to business” after many years and… feeling a little bit confused with the way coding looks now — so I am asking if something changed in that matter.

    Thanks in advance!

    • Jim

      In this particular situation I’d simply use <div class=”sidebar left”> and <div class=”sidebar right”>, attached these .sidebar, .left and .right classes and voila!

      Sorry, didn’t read rules about code snippets :(

    • http://www.nomad-one.com nomaone

      Hye @Jim, you were definitely raised up correctly on that belief of using on One instance of the ID,
      it’s a mistake on my part, was focusing way too much on the wp side of things there.

      I remedy that in upcoming versions of the tuts and try to get them to upload a new set of files

      Thanks for spotting that!!!

  • Pingback: 10 Tutorials to Help you Build a WordPress Theme from Scratch

  • http://www.rmohan.co.uk Rohit

    The best guide out on the internet by far.

    Thank you.

  • http://www.kickmovies.com charan

    nie.. very usful tutorial

  • Pingback: 15 Tutorials To Help You Build WordPress Themes « Puppetuts | Graphic and Web Design Tutorials

  • Pingback: 15篇优秀教程全面掌握WordPress主题的创建 | ifonder

  • paula

    Thanks so much! I’ve attempted other wordpress tutorials but they just don’t take total beginners into consideration and i give up!….feeling I might actually get to building my own theme now! cheers and look forward to the next tutorial.

  • Pingback: 15 Tutorials To Help You Build WordPress Themes | Roula Ellazkani

  • Pingback: 15篇助你创建WordPress主题的优秀教程»迷雾森林)))

  • http://www.fbcaffe.com entire3d

    I’m looking for a Video Tutorial on “Creating WordPress Theme from Sketch” for many year, and I really want to learn that how people make wordpress themes like themeforest advance wordpress theme, few naming of them are like- U-Design, Karma, Aleyska etc.

    Now can any one tell me how or where to find a great video tutorial on wordpress theme design? Because I want to learn how to wordpress theme design like a Pro and after then I want to sell my theme on Themeforest.

    Thank you
    entire3d

  • Gregg

    Really well done. This is just what I’ve been looking for to move from a hard-coded HTML site to a WordPress based one. You know how to break things down and explain things clearly. Few do!

  • Pingback: 10 Killer WordPress Tutorials

  • rohan jadhav

    No words to explain my regards Thanks a lot!

  • http://www.bestbabycarseatssite.com Cheryl

    Hi Nomadone, I agree with the other comments this is absolutely fantastic not too many people really consider the newbie and it is so difficult to try and learn when you don’t know where to turn, I especially agree with all those that have asked for video as I find it so much easier to learn that way, basically you are just watching over someones shoulder and you can stop the video and then go and do what you have just seen then come back and restart video, for me it is the only easy way to learn.
    Thanks again and cannot wait to jump in and start learning. And hope video’s come soon.
    Cheers
    Cheryl

  • Corey Griggs

    Great tutorial! Has really helped me a get a solid intro to the use of wordpress. I’m working through this with several other entry-level developers, and one item we ran into trouble with was how the file structure works. It may be helpful to add this in.
    We ended up putting our files under htdocs/sitename/wp-content/themes/custom. From there we activated them as themes in the admin dashboard. Is there a better way to do this?
    Thanks,
    -
    Corey

  • Pingback: 15篇助你创建WordPress主题的优秀教程 | 一毛’s web

  • Sinbad Konick

    hi there , I just love all of these tutorial and this one just awesome ..But i was thinking if it’s possible to Give us some Video Tutorials ..I mean Complete Video Tutorials On Professional WordPress Theme Development..And also another thing..As Tutsplus.com have all kind of tuts in their busket why not the Android one ? nowadays android is one of the main techi ..It will be Awesome if we see New Android Blog Featuring Tutsplus : ) Hope to see that too :)

  • Pingback: 22+ Great Tutorials for Building and Creating Wordpress Themes | AchoDesign

  • Pingback: WordPress: What is the best way to learn how to develop a website based on Wordpress? - Quora

  • Pingback: Startup LunchBox » For Every Startup: 9 Tools to Learn the Basics of Webdesign

  • Pingback: How To Make Your First WordPress Theme

  • Pingback: johnny writes « Cancel All Web Classes «

  • preetee

    Hi,
    This tutorial has been very helpfull for me as a new beginner wordpress :) Thank you :) I look forward to continue on the following parts :)

  • tuprick

    This had been very helpful, but I got confused with STEP #8.
    During Activation (before you press the activate).. It doesn’t show any description and thumbnail/preview.

    However, description was shown when I activated the theme but still doesn’t show the picture on the current theme area.

    Have I missed a step?

    Thanks. :)

  • Pingback: Learn How To Make WordPress Themes: All The Best Resources | WPExplorer

  • Shishupal sodha

    i do all the steps perfectly but it doesn’t show me images and stylesheet (looks like step 6)

  • Pingback: GamgeeSite – Membuat Sendiri Tema Wordpress

  • Pingback: WP Themes » Hallo, here is Pane!

  • Pingback: How to Create a WordPress Theme from Scratch? | Free WordPress Themes and Plugins

  • mcsalds

    Thank you! this is really good stuff for wordpress beginner like me.. ;)

  • Kristjansson

    Thank you very much. This is very good.

  • Pingback: 学习制作WordPress主题的优秀教程,如果英文不错,那会更好 – 爱多米

  • Asfaha

    Thank you! really nice tut, it helped me a lot. Hope the next ones will do also.

  • Pingback: 25 WordPress Theme Development Tutorials to Get Started - Rockable Themes

  • Pingback: 25 WordPress Theme Development Tutorials to Get Started - Daily Design Hub

  • MartinRheaume

    I couldn’t get it to work for me. I feel like I followed the instructions, but something is not working. After I added the comments in the css, I still don’t have a theme preview, and when I activate my theme, it doesn’t have any styling, so that’s where I’m stuck. I’m trying to build this on a local server, and I’m using the download for the training wheels theme.

  • Pingback: TEST 21 | ABCD

  • Pingback: » WordPress Blogging Tutorial – Build WordPress Theme From Scratch Experts Product Review Of Templatic Themes

  • dfrierson2

    Thank you so much for the simple tut! I got a little teary eye for a sec

  • Pingback: 20 Useful WordPress Theme Tutorials and Resources - Streetsmash

  • Pingback: How to build WordPress themes – 15 tutorials | Holtermann Design LLC

  • http://www.facebook.com/people/Ramiro-Ramirez/1312416720 Ramiro Ramirez

    “…especially after midnight, when my brain can no longer function but the coffee is keeping me going” :Couldn’t agree more with you. Thank you very much for this incredible article! I’m a beginner trying to take distant from that word. Your tutorial really helped me to achieve that.

  • Pingback: 15 Tutorials To Help You Build WordPress ThemesFree Themes and Templates | Free Themes and Templates

  • Pingback: Making WordPress Theme from Scratch | serunidev

  • Pingback: 25 บทความสอนการทำ theme wordpress ตั้งแต่เริ่มต้น!! | Mister sTA

  • Pingback: 25 บทความสอนการทำ theme wordpress | Mister sTA

  • Sharif

    Great article for a beginner like me .:) thanks a lot for the nice effort .

  • Pingback: WordPress Theme Development Training Wheels | Wptuts+ | WebTekNeq's

  • Pingback: EasyPHP DevServer - Download | WebTekNeq's

  • Kästle Olson

    This is wonderful! You helped me to have that priceless “clicking” moment. Thank you so much! I’m more of an artist and graphic designer but I so desperately want to learn to create my ideas in the dynamic web form. I have been slogging through tutorials often thinking I understood, but was obviously missing something fundamental. I totally get php now! Thank you again for doing this.