0
votes

I have designed a custom theme in wordpress and I am trying to add a link to homepage that will take users to the posts of a particular category... for example

Post from category 1 Post from category 1 Post from category 1 (See all posts from category 1)

Post from category 2 Post from category 2 Post from category 2 (See all posts from category 2)

But for some reason this link is not working and all the links take them to the "featured" category (featured categories id is 261)

Here is the code I am using to pull the list of posts from a category:

<?php query_posts( 'cat=5&posts_per_page=4' ); ?>
<?php get_template_part('news_page_loop'); ?>

And here is the content of the news_page_loop page. Bottom few lines have the code for view all posts link:

<div class="single_post">
    <?php if(have_posts()) : ?><?php while(have_posts())  : the_post(); ?>
    <div class="cat-page-thumb-title">
        <a href="<?php the_permalink(); ?>">
            <?php the_post_thumbnail('home-cat-image', array('class' => 'cat-thumb')); ?>
        </a> 
        <p class="catpage-post-title">
            <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        </p>
        <p class="post-meta">
            <?php comments_popup_link('0 Reviews', '1 Review', '% Reviews'); ?>
        </p>
    </div><!--cat page thumb and title-->
    <?php endwhile; ?>
    <?php endif; ?>
</div><!--single post-->

<div class="page_navi_wp">
    <div class="view-more-cat"><?php
        $category = get_the_category();
        if($category[0]){
            echo '<a href="'.get_category_link($category[0]->term_id ).'">View More Posts</a>';
        }
    ?></div>
</div><!--page navi wp-->

What am I doing wrong? Please help. For reference, the site is: http://tour.khujbo.com/

Thank you

2

2 Answers

0
votes

Here is my code for my custom theme of Categoty.php

I don't use any query.

<?php get_header(); ?>
<div class="row">
<div class="col-xs-12 col-sm-7 col-md-8 post">
<h3><?php _e('Category:','My-Theme');?> <a href="<?php echo get_category_link( $category_id ); ?>" title="<?php echo single_cat_title(); ?>"><?php echo single_cat_title(); ?></a></h3>
<?php if ( have_posts() ) : ?>
<?php
// The Loop
while ( have_posts() ) : the_post(); ?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<div class="post-header-line">
<?php My_Theme_posted_on(); ?>
</div>
<div class="post-content">
<?php the_excerpt(); ?>
</div>
<div class="post-footer-line">
<?php _e('Posted in  ','My-Theme');?><?php the_category(', ');?>
</div>
<?php endwhile; // End Loop
My_Theme_numeric_posts_nav();
else: ?>
<p class="bg-primary"><?php _e('Sorry, no posts matched your criteria.','My-Theme');?></p>

<?php endif; ?>
</div>
<div class="col-xs-12 col-sm-5 col-md-4">
<?php get_sidebar(); ?>
</div>
</div>
<div class="clear"></div>
<?php get_sidebar('footer'); ?>
<div class="clear"></div>
<?php get_footer(); ?>

Page Navigation Code

function my_theme_numeric_posts_nav() {

    if( is_singular() )
        return;

    global $wp_query;

    /** Stop execution if there's only 1 page */
    if( $wp_query->max_num_pages <= 1 )
        return;

    $paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1;
    $max   = intval( $wp_query->max_num_pages );

    /** Add current page to the array */
    if ( $paged >= 1 )
        $links[] = $paged;

    /** Add the pages around the current page to the array */
    if ( $paged >= 3 ) {
        $links[] = $paged - 1;
        $links[] = $paged - 2;
    }

    if ( ( $paged + 2 ) <= $max ) {
        $links[] = $paged + 2;
        $links[] = $paged + 1;
    }

    echo '<div><ul class="pagination">' . "\n";

    /** Previous Post Link */
    if ( get_previous_posts_link() )
        printf( '<li>%s</li>' . "\n", get_previous_posts_link() );

    /** Link to first page, plus ellipses if necessary */
    if ( ! in_array( 1, $links ) ) {
        $class = 1 == $paged ? ' class="active"' : '';

        printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( 1 ) ), '1' );

        if ( ! in_array( 2, $links ) )
            echo '<li><span>...</span></li>';
    }

    /** Link to current page, plus 2 pages in either direction if necessary */
    sort( $links );
    foreach ( (array) $links as $link ) {
        $class = $paged == $link ? ' class="active"' : '';
        printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $link ) ), $link );
    }

    /** Link to last page, plus ellipses if necessary */
    if ( ! in_array( $max, $links ) ) {
        if ( ! in_array( $max - 1, $links ) )
            echo '<li><span>...</span></li>' . "\n";

        $class = $paged == $max ? ' class="active"' : '';
        printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $max ) ), $max );
    }

    /** Next Post Link */
    if ( get_next_posts_link() )
        printf( '<li>%s</li>' . "\n", get_next_posts_link() );

    echo '</ul></div>' . "\n";

}
0
votes

In, news_page_loop file, After endif statement, Just mention,

<?php wp_reset_query(); ?>

statement to restore original main query.

There is no need to write, "View More Posts" section code in above file.

Instead on Home page, you can use the below code,

<?php query_posts( 'cat=5&posts_per_page=4' ); ?>
<?php get_template_part('news_page_loop'); ?>
<?php  $category_link = get_category_link(5); ?>
<a href="<?php echo esc_url( $category_link ); ?>" title="Category Name">View More Posts</a>

The resulting, "new_page_loop.php" will have below code,

<div class="single_post">
    <?php if(have_posts()) : ?><?php while(have_posts())  : the_post(); ?>
    <div class="cat-page-thumb-title">
        <a href="<?php the_permalink(); ?>">
            <?php the_post_thumbnail('home-cat-image', array('class' => 'cat-thumb')); ?>
        </a> 
        <p class="catpage-post-title">
            <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        </p>
        <p class="post-meta">
            <?php comments_popup_link('0 Reviews', '1 Review', '% Reviews'); ?>
        </p>
    </div><!--cat page thumb and title-->
    <?php endwhile; ?>
    <?php endif; ?>
<?php wp_reset_query(); ?>
</div><!--single post-->

Reference Link : http://codex.wordpress.org/Function_Reference/get_category_link