对于自定义帖子类型,WP the_content()不会显示在单个模板中

时间:2012-11-08 18:52:42

标签: wordpress wysiwyg custom-post-type

我在Word Press single-posttype.php模板中遇到了这个非常奇怪的错误。 模板呈现除WYSIWYG类型之外的任何字段。

所以首先它没有渲染the_content()所以我创建了自定义字段进行测试,如果它只是一个文本区域,文本字段,boolen或其他什么,模板呈现它。但只要该字段是WYSIWYG并包含段落,该字段就不会显示。

基本上我single-posttype.php

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

此帖子类型支持编辑器。

single-post.php和其他模板正确显示所有内容。有什么想法吗?

更新(解决方法):

所以我找不到任何适合这个问题的解决方案,这就是为什么我不得不想出一个解决方法。由于the_content()函数和过滤器都不会在我的模板中呈现内容文字,因此我使用原始内容get_the_content()(其中仍然包含<h1>等html标记)并应用str_replace()来添加<br />代替换行符。在CSS中,我使用与段落相同的方式设置此内容div,并在模板中获得相同的最终外观。 这是内容的代码(基于php.net的例子):

 $str = get_the_content();
 $order   = array("\r\n", "\n", "\r");
 $replace = '<br />';

 $newstr = str_replace($order, $replace, $str);
 echo $newstr;

2 个答案:

答案 0 :(得分:2)

尝试在帖子类型循环之前放置<?php wp_reset_query(); ?>,看看是否有帮助。

答案 1 :(得分:0)

尝试在WP Query的参数中指定自定义帖子类型名称。因为自定义帖子类型的帖子不是帖子。

$my_query->query(array('post_type' => 'CPT_name', 'post__in' => array($p)));

the_content is displaying nothing for a costum post type