Index.php, The Loop and your WordPress Content
We have already discussed the header and the menu in our previous articles. In continuation of our series, we will now take a look at the Content section of the WordPress theme or the index.php. Here’s a recap of what we wrote:
Content Column (index.php)
The content container in WordPress plays the most important role. It holds the WordPress Loop which dictates the generation of content on the page depending upon the request by the user.
Content, on the other hand, consists of text, images, or other information shared in posts. This is separate from the structural design of a web site, which provides a framework into which the content is inserted, and the presentation of a site, which involves graphic design.
Now, let’s take a look at what a Loop is. According to the WordPress Codex:
“The Loop” is the main process of WordPress. You use The Loop in your template files to show posts to visitors. You could make templates without The Loop, but you could only display data from one post. The Loop should be placed in index.php and in any other Templates used to display post information.
The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post.
Before The Loop goes into action, WordPress verifies that all the files it needs are present. Then it collects the default settings, as defined by the blog administrator, from the database. This includes the number of posts to display per page, whether commenting is enabled, and more. Once these defaults are established, WordPress checks to see what the user asked for. This information is used to determine which posts to fetch from the database.
If the user didn’t ask for a specific post, category, page, or date, WordPress uses the previously collected default values to determine which posts to prepare for the user.
After all this is done, WordPress connects to the database, retrieves the specified information, and stores the results in a variable. The Loop uses this variable’s value for display in your templates.
Below is a visual of how all these php files and templates work together. It shows which template files are called to generate a WordPress page based on the WordPress Template hierarchy.
And here’s a sample code of a simple index page:
if (have_posts()) :
while (have_posts()) :
For beginners out there, it’s like telling WordPress to do certain functions based on a set of defined parameters – an “if”-“then” scenario. “IF” (parameter A) is true, “THEN” (execute this action). “IF” (parameter A) is false, “THEN” (execute this action instead).
For the more advanced and those who would like to sink their teeth into something more “meaty”, here are some excellent references and tutorials you can check out:
- WordPress Codex – The Loop
- The Index Template
- Custom WordPress Theme Tutorial – Chris Spooner
- WordPress Theme Design Basics