What content should go in index.php?

I’m developing my own theme and came up with an issue that’ I am confused with. I have two files that I’m trying to figure out. page.php and index.php.

I know that page.php is used for pages, of course, but when trying to set up a 404 page, for example:

Read More
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>


    <section class="main-content">
        <div class="content-wrap">
            <div class="module page">
                <h1 class="title"><?php wp_title(''); ?></h1>
                <?php the_content(); ?>
            </div><!-- /.blog -->
        <?php get_sidebar(); ?>
        </div><!-- /.content-wrap -->
    </section>

<?php endwhile; else : ?>
404 not found
<?php endif; ?>

Nothing will be displayed. Now, if I copy this content and stick it in index.php, I will have a 404 page. I have no idea what to do because index.php is required for a theme but I don’t know what to do with it. Can someone explain the differences and what kind of content actually goes in it?

Related posts

Leave a Reply

2 comments

  1. Index.php isn’t for a specific page, and that’s not how template files in themes work.

    You will need to understand the template heirarchy

    http://codex.wordpress.org/Template_Hierarchy

    enter image description here

    WordPress uses the Query String — information contained within each
    link on your web site — to decide which template or set of templates
    will be used to display the page.

    First, WordPress matches every Query String to query types — i.e. it
    decides what type of page (a search page, a category page, the home
    page etc.) is being requested.

    Templates are then chosen — and web page content is generated — in the
    order suggested by the WordPress Template hierarchy, depending upon
    what templates are available in a particular WordPress Theme.

    WordPress looks for template files with specific names in the current
    Theme’s directory and uses the first matching template file listed
    under the appropriate query section below.

    With the exception of the basic index.php template file, Theme
    developers can choose whether they want to implement a particular
    template file or not. If WordPress cannot find a template file with a
    matching name, it skips down to the next file name in the hierarchy.
    If WordPress cannot find any matching template file, index.php (the
    Theme’s home page template file) will be used.