web-dev-qa-db-fra.com

Wordpress: single.php n'affiche pas the_content ()

Je crée un thème Wordpress et je n'arrive pas à faire fonctionner le modèle single.php. Ci-dessous le code que j'ai écrit. Le titre apparaît mais le contenu ne fonctionne pas) t. Des idées pourquoi ce n'est pas?

<?php
/**
 * The Template for displaying all single posts.
 */

get_header(); ?>

<div id="content" role="main">
    <div <?php post_class() ?> id="post-<?php the_ID(); ?>">
        <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
        <small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small>

        <div class="entry">
            <?php the_content(); ?>
        </div>

        <p class="postmetadata"><?php the_tags('Tags: ', ', ', '<br />'); ?> Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?>  <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p>
    </div>
</div><!-- #content -->

Voir ici pour une capture d'écran de la sortie:

enter image description here

22
Thomas Depole

the_content() ne s'affiche pas car il doit être à l'intérieur de La boucle - jetez un œil aux documents ici "

Vous devez changer votre code en ceci:

if ( have_posts() ) : while ( have_posts() ) : the_post();
  the_content();
endwhile;
else:
  <p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
endif;

Vous pouvez laisser de côté le else si vous êtes toujours sûr d'avoir du contenu à afficher :) Ou jetez simplement un œil au single.php Original où vous pouvez trouver The Loop = entoure toujours the_content()

modifier:

Voici le single.php complet que vous voudrez peut-être utiliser/commencer avec:

<?php
/**
 * The Template for displaying all single posts.
 */

get_header(); ?>

<div id="content" role="main">

    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <div <?php post_class() ?> id="post-<?php the_ID(); ?>">
        <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
        <small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small>

        <div class="entry">
            <?php the_content(); ?>
        </div>

        <p class="postmetadata"><?php the_tags('Tags: ', ', ', '<br />'); ?> Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?>  <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p>
    </div>
    <?php endwhile; endif; ?>

</div><!-- #content -->
62
lorem monkey

J'ai simplement mis the_post() au-dessus de the_content() et cela a fonctionné

7
GnờưĐ GnurT HnA

J'écris ceci parce que j'ai eu un problème similaire. Mon contenu n'apparaissait pas. Cependant mon l'appel à the_content était à l'intérieur de la boucle. De plus, cela fonctionnait sur mon serveur de développement mais pas sur le serveur de production.

J'ai pu résoudre ce problème en supprimant tous les plugins, puis en les ajoutant un par un.

Bien sûr, si la mise en cache est activée, une bonne première étape consiste à vider le cache.

1
Jahmic