web-dev-qa-db-ja.com

Wordpress:single.phpがthe_content()を表示しない

カスタムWordpressテーマを作成していますが、single.phpテンプレートを機能させることができません。以下に私が書いたコードを示します。タイトルは表示されますが、コンテンツは表示されません。 t。なぜそうではないかについてのアイデアはありますか?

<?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 -->

出力のスクリーンショットについては、こちらをご覧ください。

enter image description here

22
Thomas Depole

the_content()は、ループ内にある必要があるため表示されていませんループ- こちらのドキュメントをご覧ください"

コードを次のように変更する必要があります。

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

表示するコンテンツがあることが常にわかっている場合は、elseを省略できます:)または、元の_single.php_を確認してくださいループ常にthe_content()を囲みます

edit:

以下に、使用したい/使用したいsingle.php全体を示します。

_<?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

私は単にthe_post()the_content()の上に置くだけでうまくいきました

7

同様の問題があったので、これを書いています。コンテンツが表示されませんでした。しかし、私のthe_contentへの呼び出しはThe Loop内にありました。さらに、これは私の開発サーバーでは機能していましたが、本番サーバーでは機能していませんでした。

すべてのプラグインを削除して、1つずつ追加することで、これを解決できました。

また、もちろん、キャッシュを有効にしている場合は、最初のステップとしてキャッシュをクリアすることをお勧めします。

1
Jahmic