|

Categorie pagina maken

Deze post is bedoeld voor degenen die graag in de WordPress code duiken.

Ik was zelf al enige tijd op zoek naar de beste manier om een ‘startpagina’ te maken. Een overzichtspagina van alle categoriëen met onder iedere catergorie een lijst van alle berichten.

Het handigste is om voor deze pagina een aparte template te maken. Hieronder een mooi voorbeeld van hoe je dit aan zou kunnen pakken.

<?php
/* template name: Berichten per categorie */
get_header(); ?>
 
        <div id="container">
            <div id="content" role="main">
 
            <?php
            // haal alle categorieen op uit de database
            $cats = get_categories(); 
 
                // loop door de categorieen met een foreach statement
                foreach ($cats as $cat) {
                    // zet de categorie ID
                    $cat_id= $cat->term_id;
                    // Maak een header met de categorienaam
                    echo "<h2>".$cat->name."</h2>";
                    // start een nieuwe wordpress query
                    query_posts("cat=$cat_id&posts_per_page=100");
                    // start de wordpress loop!
                    if (have_posts()) : while (have_posts()) : the_post(); ?>
 
                        <?php // maak de link naar het bericht ?>
                        <a href="<?php the_permalink();?>"><?php the_title(); ?></a>
                        <?php echo '<hr/>'; ?>
 
                    <?php endwhile; endif; // einde wordpress loop. Loop start opnieuw met de volgende categorie ?>
                <?php } // einde van het foreach statement ?>
 
            </div><!-- #content -->
        </div><!-- #container -->
 
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Je loopt hiermee dus met een ‘foreach’ statement door alle categorieëen heen. Binnen die categorie-loop, loop je voor iedere categorie met de if/while door alle berichten uit die categorie heen. Een bericht-loop binnen de categorie-loop dus.

In bovenstaande snippet is nog geen styling toegepast. Alle categorieën en berichten komen in een lange lijst onder elkaar te staan. Maar met wat styling is het vrij eenvoudig om hier een nette kolommenstructuur van te maken. Uiteindelijk kun je er een mooie site mee maken.