I use this code in the single.php and it works perfectly. But in the index.php nothing appears.


<div id="relatedposts">
<?php $orig_post = $post;
global $post;
$categories = get_the_category($post->ID);
if ($categories) {
$category_ids = array();
foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
'category__in' => $category_ids,
'post__not_in' => array($post->ID),
'posts_per_page'=> 4, // Number of related posts that will be shown.
$my_query = new wp_query( $args );
if( $my_query->have_posts() ) {
while( $my_query->have_posts() ) {
<div class="related">
<a href="<? the_permalink()?>" title="<?php the_title(); ?>">
<?php if(has_post_thumbnail()) {
the_post_thumbnail(array(100,100), array( 'class' => 'relthumb' ));
} else {echo '<img class="relthumb" src="'.get_bloginfo('template_url').'/images/noimgrelated.png" />';
<div class="title"><a href="<? the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></div>
</div><!-- /* .related -->
echo '';
$post = $orig_post;
wp_reset_query(); ?>
</div><!-- /* .relatedposts -->

How can I make work in index? Sorry my english.

1 Answer 1


That code should work. I just tested in my own index.php and it worked. Are you sure you're looking at the index.php file. Sometimes WP actually pulls a different template: For more info, see WP template hierarchy diagram. To test what template you're seeing, place this code in your functions.php file temporarily:

add_action('wp_head', 'show_template');
    function show_template() {  
      global $template;
      echo '<span style="color: #000; z-index: 10000; position: absolute;">' . $template . '</span>';

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.