Am using a custom template (tag.php) to show posts related to tag. So when someone clicks on say tag ‘A’ then he/she gets redirected to my tag.php layout instead of default template for archives. I did this by making a tag.pho in my child theme.
Now the problem is some of my posts are marked with multiple tags. for example - Tag ‘A’ – 15 posts Tag ‘B’ – 5 posts Tag ‘A’ & ‘B’ – 20 posts.
Now when someone clicks on Tag ‘A’ from sidebar tag list, then it gets the list of 15 posts which is right. But when someone clicks on Tag ‘B’ then also the user gets the list of same 15 posts.
The problem do not ends here, am also using ‘paged’ option, so when user (while seing Tag ‘A’ posts) clicks on next page, then it is shown as blank. But when user sees posts of Tag ‘B’ then also there is pagination visible (but it should not be because there are only 5 posts) and when user clicks next page, then it shows 404 error.
Here is the code -
<?php
function uttt_custom_loop()
{
global $post;
$tags = wp_get_post_tags($post->ID);
$first_tag = $tags[0]->term_id;
// arguments, adjust as needed
$args = array(
'post_type' => 'post',
'tag__in' => array($first_tag),
'post_status' => 'publish',
'paged' => get_query_var( 'paged' )
);
global $wp_query;
$wp_query = new WP_Query( $args );
$cnt=1;
if ( have_posts() ) : while ( have_posts() ) : the_post();
?>
<div id="post_page_grid" style="<?php echo (isset($cnt) && $cnt==7)?'clear:both':'';?>">
<?php $link_to_pic = post_custom('restro-pic'); ?>
<div id="img_ra">
<div id="img_div_custom">
<?php
if ($link_to_pic !='')
{ ?>
<img src="<?php echo $link_to_pic; ?>" alt="restaurant-pic"/>
<?php
}
else if ($link_to_pic =='')
{ ?>
<img src="" alt=""/> <?php
} ?>
</div>
<div id="rating_custom">
<?php echo do_shortcode('[starrater tpl=10 read_only=1]'); ?>
</div>
</div>
<div id="post_page_cont">
<b><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></b>
<?php the_excerpt(); ?>
</div>
</div>
<?php
$cnt=$cnt+1;
endwhile;
do_action( 'genesis_after_endwhile' );
endif;
wp_reset_postdata();
}
remove_action( 'genesis_loop', 'genesis_do_loop' );
add_action( 'genesis_loop', 'uttt_custom_loop' );
genesis();