2010-05-03 3 views
1

J'ai créé un modèle de catégorie dans Wordpress pour tous les messages qui sont dans la catégorie «blog». Le nom de fichier est single-blog.php. Il y a du code conditionnel dans single.php qui vérifie si le post est dans la catégorie 'blog' et s'il le redirige vers single-blog.php. Cela semble fonctionner correctement. Le problème est que sur tous les messages catégorisés du «blog» individuel, le titre du message et le contenu sont renvoyés en bas du pied de page. Je ne sais pas pourquoi ils se présentent et je n'ai pas été capable de l'arrêter ou de le cacher. La boucle est fermée sur la page de modèle, mais je me demande si la boucle de single.php est également envoyée. Vous pouvez voir un exemple du problème ici:Contenu étant échoué au-dessous du pied de page dans le modèle de catégorie Catégorie

http://69.20.59.228/2010/03/test-blog-post/

S'il vous plaît laissez-moi savoir si vous avez des suggestions. Je poste deux sections de code ci-dessous. Le premier est l'appel conditionnel dans single.php. Le second est le code du single-blog.php (le template de la catégorie post).

l'appel conditionnel dans single.php.

<?php 
$post = $wp_query->post; 
if (in_category('blog')) { 
include(TEMPLATEPATH.'/single-blog.php'); 
}?> 

Code du seul blog.php (le modèle de poste de catégorie)

<?php get_header(); ?> 

    <?php get_sidebar(); ?> 


    <p><h2>The IQNavigator Blog</h2></p> 
    <em><a href="/category/blog">Blog Home</a></em> | <em><a href="/category/blog/feed/">Subscribe via RSS</a></em><p><br></br></p> 

<?php if (have_posts()) : while (have_posts()) : the_post(); ?> 


    <div <?php post_class() ?> id="post-<?php the_ID(); ?>"> 
     <h1 class="pagetitle"><?php the_title(); ?></h1> 
     <!-- <p class="details">Posted <?php the_time('l, F jS, Y') ?> at <?php the_time() ?></p> --> 
     <div class="entry"> 
      <?php the_content('<p class="serif">Read the rest of this entry &raquo;</p>'); ?> 

      <?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?> 
      <?php the_tags('<p>Tags: ', ', ', '</p>'); ?> 

      <p class="postmetadata alt"> 
       <small> 
        -----<br> 
        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/wordpress/time-since/ */ 
         /* $entry_datetime = abs(strtotime($post->post_date) - (60*120)); echo time_since($entry_datetime); echo ' ago'; */ ?> 
        on <?php the_time('l, F jS, Y') ?>, 
        filed under <?php the_category(', ') ?>. 
        Follow any responses to this entry through the <?php post_comments_feed_link('RSS'); ?> feed. 

        <?php if (comments_open() && pings_open()) { 
         // Both Comments and Pings are open ?> 
         <a href="#respond">Leave your own comment</a>, or <a href="<?php trackback_url(); ?>" rel="trackback">trackback</a> from your own site. 

        <?php } elseif (!comments_open() && pings_open()) { 
         // Only Pings are Open ?> 
         Responses are currently closed, but you can <a href="<?php trackback_url(); ?> " rel="trackback">trackback</a> from your own site. 

        <?php } elseif (comments_open() && !pings_open()) { 
         // Comments are open, Pings are not ?> 
         You can skip to the end and leave a response. Pinging is currently not allowed. 

        <?php } elseif (!comments_open() && !pings_open()) { 
         // Neither Comments, nor Pings are open ?> 
         Both comments and pings are currently closed. 

        <?php } edit_post_link('Edit this entry','','.'); ?> 

       </small> 
      </p> 




      <?php the_tags('<p>Tagged: ', ', ', '</p>'); ?> 
     </div> 

    </div> 


<?php comments_template(); ?> 

<?php endwhile; else: ?> 

    <p>Sorry, no posts matched your criteria.</p> 

<?php endif; ?> 


<?php get_footer(); ?> 

Répondre

1

Vous pouvez essayer d'ajouter la sortie()

<?php get_footer(); exit(); ?> 

Est il code dans votre fichier single.php après le conditionnel? Inclut n'arrête pas l'exécution et l'interpréteur retournera dans le fichier single.php une fois que c'est fait avec single-blog.php.

+0

Il y a du code dans le single.php après le conditionnel; Ce que vous décrivez est ce dont j'avais peur. Dois-je déballer votre code et le placer dans l'encapsuleur conditionnel avant la fermeture de la balise php? – poindexter

+0

Très bien, j'ai mis votre code et il est réparé. Merci beaucoup, réponse acceptée. – poindexter

+0

En PHP, vous pouvez utiliser exit() à tout moment pour arrêter complètement le code. Donc, s'il n'y a aucun moyen de mieux organiser votre code, je le mettrais juste après l'instruction include dans le conditionnel. –

0

Look à votre source de la page; le code affichant le titre « Test Blog Post » est après </html>, alors vous avez une boucle ou une requête ou quelque chose tirant les messages dans footer.php

+0

J'ai vu ça; mais mon code de pied de page n'a rien à voir avec la boucle. Voici le code exact qui se trouve dans le pied de page (pastebin): http://wordpress.pastebin.com/zfQ4GHBZ La boucle supplémentaire est en cours d'injection ou répétée à partir d'une source inconnue. – poindexter

+0

Est-ce que single.php est vide, sauf pour ce que vous avez posté? –

+0

single.php est presque le même que ce que j'ai posté, sauf qu'il n'a pas le "HTML header" HTML ou le code permettant aux gens de poster des commentaires. Vous pouvez voir exactement ce qui est dans single.php ici: http://wordpress.pastebin.com/nqLQdtLE – poindexter

Questions connexes