Category met forumlay-out
De titel klinkt misschien een beetje cryptisch, maar het is heel eenvoudig. Al tijden heb ik het idee om voor een specifieke categorie een forum lay-out te gebruiken. De categorie is dus eigenlijk het forum en de subcategorie?n zijn dan de subfora.
WordPress biedt standaard de mogelijkheid om een aparte template te gebruiken voor een specifieke categorie. Dit kan eenvoudig worden gedaan door een bestand met de naam category-7.php aan te maken in de template directory. In mijn geval is 7 het ID van de categorie waarvoor ik een aparte template wil. In de basis hetzelfde idee als ik ook voor mijn inhoudsopgave-template gebruikt heb.
Nu leverde een zoektocht met de diverse zoekmachines mij niet veel op, ook de codex van WordPress bracht niet veel uitkomst. Er waren genoeg vragen van andere mensen die het zelfde wilden, maar geen van allen had iets gevonden of had een duidelijke uitwerking.
De code van de pagina zoals ik die nu gebruik:
<!--?php get_header(); ?-->
<!--?php get_sidebar(); ?-->
<div class="widecolumn">
<h2>Berichten in <!--?php single_cat_title(); ?--></h2>
<!--?php
while (have_posts()) : the_post();
if ((is_category()) && in_category($wp_query--->get_queried_object_id())) { ?>
<dl>
<dt><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><!--?php the_title(); ?--></a>
<!--?php the_time(get_settings('date_format')); ?--> om <!--?php the_time(); ?--> <!--?php the_tags('Tags: ', ', ', ' '); ?-->
<!--?php comments_popup_link('0 reacties', '1 reactie', '% reacties'); ?--></dt>
</dl>
<!--?php }
endwhile;
?-->
<!--?php
$categories=get_categories('child_of='.$cat);
if (!empty($categories)) :
foreach($categories as $categorie) :
query_posts('cat=' . $categorie--->cat_ID . '&orderby=date&order=desc');
echo '
<h3>Subforum ' .$categorie->cat_name. '</h3>
';
while (have_posts()) : the_post(); ?>
<dl>
<dt><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><!--?php the_title(); ?--></a>
<!--?php the_time(get_settings('date_format')); ?--> om <!--?php the_time(); ?--> <!--?php the_tags('Tags: ', ', ', ' '); ?-->
<!--?php comments_popup_link('0 reacties', '1 reactie', '% reacties'); ?--></dt>
</dl>
<!--?php endwhile;
endforeach;
else :
endif; ?-->
<!--?php get_footer(); ?-->
</div>
Nu is dit een vrij eenvoudige opmaak. Het geheel kan natuurlijk verfraaid worden, maar de basis is er nu in ieder geval. Een voorbeeld is natuurlijk te zien in bovenstaande afbeelding.