我正在创建一个自定义Wordpress主题,我似乎无法使single.php模板起作用。以下是我编写的代码。标题出现但内容没有。任何想法为什么不是?
<?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 -->
请点击此处查看输出的屏幕截图:
答案 0 :(得分:54)
the_content()
未显示,因为它必须位于 The Loop - take a look at the docs here »
您需要将代码更改为:
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 Loop 始终围绕the_content()
修改强>
以下是您可能想要使用/开始的整个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 -->
答案 1 :(得分:5)
我只是将the_post()
放在the_content()
上方,就可以了
答案 2 :(得分:1)
我写这篇是因为我有类似的问题。我的内容没有出现。但是我对the_content的调用是在The Loop 中。此外,这适用于我的开发服务器,但不适用于生产服务器。
我能够通过删除所有插件来解决这个问题,然后逐个添加它们。
当然,如果您启用了缓存,那么第一步就是清除缓存。