• I’ve just upgraded from 2.0.1 to 2.8.4. I have a custom theme which worked well in 2.0.1, but now there seems to be a problem with the loop somehow.

    I want only 1 post per page and have set the Reading settings accordingly, but every page now includes single.php followed by index.php. So each page displays the same post twice, the first time with comments (if they exist) and the second time without any comments.

    Has anyone seen this problem before, and do you know how to solve it?

    Thanks.

Viewing 8 replies - 1 through 8 (of 8 total)
  • I’d say you are going to have to place the code from your single.php and index.php in a pastebin and report the links back here.

    A link to see the problem may help someone help you.

    I’d suggest that go back to basics in your index.php file and strip out everything but the basic Loop. Use the index.php file in the default theme as a guide.

    Hi,

    Refer these articles:

    http://codex.wordpress.org/The_Loop
    http://codex.wordpress.org/The_Loop_in_Action

    Also make sure that your theme is compatible with wordpress 2.8.4. For that you can also consult theme author.

    Thanks,

    Shane G.

    Thread Starter bluejeanchef

    (@bluejeanchef)

    Here’s the code for single.php

    <?php get_header(); ?>
    
    	<div id="content">
    
      <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    
    		<div class="post">
    			<h3 class="storytitle" id="post-<?php the_ID(); ?>"><a href="<?php echo get_permalink() ?>" rel="bookmark" title="Permanent Link: <?php the_title(); ?>"><?php the_title(); ?></a><?php the_date('','<span class="date"><br />','</span>'); ?></h3>
    
    			<div class="storycontent">
    				<?php the_content('<p class="serif">Read the rest of this entry &raquo;</p>'); ?>
    
    				<?php link_pages('<p><strong>Pages:</strong> ', '</p>', 'number'); ?>
    
    				<p class="postmetadata alt">
    					<small>
    						This entry was posted
    						<?php /* This is commented, because it requires a little adjusting sometimes.
    							You'll need to download this plugin, and follow the instructions:
    							http://binarybonsai.com/archives/2004/08/17/time-since-plugin/ */
    							/* $entry_datetime = abs(strtotime($post->post_date) - (60*120)); echo time_since($entry_datetime); echo ' ago'; */ ?>
    						on <?php the_time('l, F jS, Y') ?> at <?php the_time() ?>
    						and is filed under <?php the_category(', ') ?>.
    						You can follow any responses to this entry through the <?php comments_rss_link('RSS 2.0'); ?> feed. 
    
    						<?php if (('open' == $post-> comment_status) && ('open' == $post->ping_status)) {
    							// Both Comments and Pings are open ?>
    							You can <a href="#respond">leave a response</a>, or <a href="<?php trackback_url(display); ?>">trackback</a> from your own site.
    
    						<?php } elseif (!('open' == $post-> comment_status) && ('open' == $post->ping_status)) {
    							// Only Pings are Open ?>
    							Responses are currently closed, but you can <a href="<?php trackback_url(display); ?> ">trackback</a> from your own site.
    
    						<?php } elseif (('open' == $post-> comment_status) && !('open' == $post->ping_status)) {
    							// Comments are open, Pings are not ?>
    							You can skip to the end and leave a response. Pinging is currently not allowed.
    
    						<?php } elseif (!('open' == $post-> comment_status) && !('open' == $post->ping_status)) {
    							// Neither Comments, nor Pings are open ?>
    							Both comments and pings are currently closed.			
    
    						<?php } edit_post_link('Edit this entry.','',''); ?>
    
    					</small>
    				</p>
    
    		<div class="navigation">
    			<div class="left"><?php previous_post_link('&laquo; %link') ?></div>
    			<div class="right"><?php next_post_link('%link &raquo;') ?></div>
    		</div>
    
    				</div>
    		</div>
    
    	<?php comments_template(); ?>
    
    	<?php endwhile; else: ?>
    
    		<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
    
    <?php endif; ?>
    
    	</div>
    
    <?php include (TEMPLATEPATH . '/links1.php'); ?>
    
    <?php include (TEMPLATEPATH . '/links2.php'); ?>
    
    <?php get_footer(); ?>

    That seems OK. What about index.php? Place a copy in the WordPress pastebin, please.

    Thread Starter bluejeanchef

    (@bluejeanchef)

    OK. index.php is available at http://wordpress.pastebin.ca/1556895

    Thanks.

    Again, nothing obviously wrong with the Loop in there. That leaves:

    <?php include (TEMPLATEPATH . '/links1.php'); ?>
    <?php include (TEMPLATEPATH . '/links2.php'); ?>

    as potential culprits or any plugins that you’re currently running. Have you tried deactivating all plugins?

    Thread Starter bluejeanchef

    (@bluejeanchef)

    Well, I’m getting frustrated now.

    I deactivated all the plugins, problem remained.
    I changed to the default theme and deleted my custom theme, problem remained.
    I automatically re-installed WordPress, problem remains.

    Strangely, php generates some warning messages about missing custom files even when I use the default theme. Why would the system want links1.php and links2.php when these files were only ever used in my custom theme?

    Thanks.

Viewing 8 replies - 1 through 8 (of 8 total)

The topic ‘Loop Problem – single.php followed by index.php’ is closed to new replies.