WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

(I am pretty new to wordpress - am a C++ developer, not an html/css coder, but I am trying.)

I am having trouble figuring out how to make a home page that has blurbs about some of our products, etc and generally make something better than just a static page of text.

I want to have some pictures, perhaps a three columns or two columns of little bits of intro text that users can click on to go to other pages.

I am at a loss about how to do that. Do I need the widgets, or something? It is very unclear to me how to make it work.

I'll try to post some samples of what I am looking to do - but it really isn't all that fancy.

Some links to resources would be great - I am so new to this I don't know where to go for help or documentation. What I need is a simple "how to do this" tutorial.


share|improve this question

For starters see Site Design and Layout in Codex (official documentation wiki).

Overall your question is somewhat broad. Specifics will depend on

  • theme you are going to modify;
  • what content you want to use;
  • how easily editable you want it to be;
  • etc.
share|improve this answer

In very broad lines:

You use a theme to format the actual page. A theme is a collection of template files, which are just PHP files that can thus do anything. Which template file is included depends on the request, and is outlined in the template hierarchy. At a minimum you need an index.php page, but most themes have single.php for displaying single posts, page.php for displaying single pages, and archive.php for displaying a list of posts (date, category, tag, ... archives).

Most of the time, the posts are queried for you by WordPress depending on the request, so you don't have to call query_posts() yourself. Most content is displayed by template tags, PHP functions that display a specific item: the_content() for the main content, the_date() for the formatted date... You see them used a lot without arguments, because they get the post data from global variables. These global vars are set in the beginning of The Loop, which is thus just a normal loop with some global vars set in each iteration.

You can do anything hard-coded in your theme files, but a lot of useful code snippets are bundled in widgets. Most widgets are displayed in sidebars, which you can define for your theme. The idea is that administrators of your site can drag and drop widgets in a user-friendly way to change the layout of their site. The term sidebar should be understood as widget container, since they can also be used as footers, or even the main content area of your site. Again, it's up to you to define how many sidebars you want in each template file. Personally I hard-code almost nothing in my theme files, even if it's for my own site, because it improves re-usability and er... because it feels better?

If you want to modify a part of a function, check to see whether is has hooks. A hook is a way to extend the functionality of a function: for example, the the_content() function calls the the_content hook with the post content and returns whatever results after calling all hooks. This allows you, or other plugins you use, to modify the the_content() function. There are two types of hooks: filters which get a value, can modify it and must return the new value (if you forget this the original function will also return nothing), and actions which can do anything but don't have to return a value.

I hope this quick introduction gives you an overview of the main concepts of theme design in WordPress, if there is anything else, just ask.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.