我在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;
答案 0 :(得分:2)
尝试在帖子类型循环之前放置<?php wp_reset_query(); ?>
,看看是否有帮助。
答案 1 :(得分:0)
尝试在WP Query的参数中指定自定义帖子类型名称。因为自定义帖子类型的帖子不是帖子。
$my_query->query(array('post_type' => 'CPT_name', 'post__in' => array($p)));