• Hello

    Still new to creating my own WP Themes, and I can’t seem to figure this one out…

    I’m in my “Category.php” and all I’m trying to figure out is how to display the current category title. (so when you pick different categories, the title will switch) Right now I can not even get it to display… I’m clearly missing something….

    Code:

    <?php get_header(); ?>
    <?php get_sidebar(); ?>
    
    <div id="body_pages">
    
    	<h2><?php single_cat_title(); ?></h2>
    	<?php $posts = query_posts($query_string . '&orderby=title&order=asc'); if (have_posts()) : while (have_posts()) : the_post(); ?>
    	<?php the_content(); ?>
    	<?php endwhile; else: ?>
    
    	<p><?php  _e("Sorry, but there are no GTBC members in this category",""); ?></p>
    	<?php endif; ?>
    
    		<div id="cat_arch_nav">
    		<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); }
    		else { ?>
    			<?php previous_posts_link(__('« PREVIOUS PAGE','')) ?>
    			<?php next_posts_link(__('NEXT PAGE »','')) ?>
    	<?php } ?>
    		</div><!-- /cat_arch_nav -->
    </div><!--END body_pages-->
    <?php get_footer(); ?>
Viewing 3 replies - 1 through 3 (of 3 total)
  • A couple of things..

    1- you’re using query_posts which should never be used. There’s a lot of tutorials that mention query_posts but it’s really not the way to do it.

    Try using WP_query instead or just use the default loop. There’s nothing fancy going on here.

    2- In order to to display the single_cat_title, you need to echo it.

    <h2><?php echo single_cat_title(); ?></h2>

    Personally I would use something like this:

    <?php get_header(); ?>
    <?php get_sidebar(); ?>
    
    <div id="body_pages">
    
    <?php if (have_posts()) : ?>
    
    	<h2><?php echo single_cat_title(); ?></h2>
    	<?php while (have_posts()) : the_post(); ?>
    	<?php the_content(); ?>
    	<?php endwhile; else: ?>
    
    	<p><?php  _e("Sorry, but there are no GTBC members in this category",""); ?></p>
    	<?php endif; ?>
    
    		<div id="cat_arch_nav">
    		<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); }
    		else { ?>
    			<?php previous_posts_link(__('« PREVIOUS PAGE','')) ?>
    			<?php next_posts_link(__('NEXT PAGE »','')) ?>
    	<?php } ?>
    		</div><!-- /cat_arch_nav -->
    </div><!--END body_pages-->
    <?php get_footer(); ?>
    Thread Starter AmandaBergsma

    (@amandabergsma)

    Hi Christine

    When I try to use the default loop (and copy and paste what you suggested) three things happen.

    1. The <h2><?php echo single_cat_title(); ?></h2> dose not return the current category title, but a parent category. Even if the category I select to view is not a child of the one being shown, it still shows it.

    2. The bottom page navigation no longer works. The URL updates( aka page 2) but it’s the same post on every page.

    3. I now only get my latest post (just one) in the Category archive, and that post is not even in the category I’m viewing.

    I think I broke wordpress 🙁

    http://codex.wordpress.org/Function_Reference/single_cat_title

    what is going on in header and sidebar?
    could there be any custom queries which are distorting the original query?

    try to add wp_reset_query(); before single_cat_title()

    to see what the situation is before your loop, try to add
    <?php var_dump( $wp_query ); ?> before the line with single_cat_title() – this should give you a lot of output to check if you are looking at the category archive query or something else…

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘Category.php not displaying category title’ is closed to new replies.