WordPress中如何加载分类法的富文本/格式化描述
WordPress中如何加载分类法的富文本/格式化描述
嗨,我明白你现在遇到的问题啦!刚接触WordPress和ACF的时候确实会碰到这类小坑,别担心,咱们来一步步解决它~
你现在的核心问题是:直接输出$term->description时,WordPress默认会把HTML标签转义成纯文本,导致你用富文本编辑器编辑的格式(换行、链接、HTML样式等)都没法正常显示。这里有两个简单有效的解决方案:
方案一:使用wp_kses_post()函数保留安全HTML
这个函数会自动保留所有WordPress允许的安全HTML标签(比如<p>、<br>、<a>、<strong>这些),同时过滤掉危险的代码,非常适合输出用户编辑的富文本内容。
修改你的代码如下:
<?php $terms = get_the_terms(get_the_ID(), 'locatie'); // 获取文章关联的分类项 if ($terms && !is_wp_error($terms)) : foreach ($terms as $term) : ?> <h2><?php echo ($term->name); ?></h2> <p><?php echo wp_kses_post($term->description); ?></p> <?php endforeach; endif; ?>
方案二:使用the_content过滤器处理内容
如果你希望分类描述像文章正文一样自动处理换行(把普通换行转换成<p>标签),同时支持短代码解析等功能,可以用apply_filters('the_content', $term->description)来处理。注意这时候可以去掉外面的<p>标签,因为过滤器会自动生成段落:
<?php $terms = get_the_terms(get_the_ID(), 'locatie'); // 获取文章关联的分类项 if ($terms && !is_wp_error($terms)) : foreach ($terms as $term) : ?> <h2><?php echo ($term->name); ?></h2> <?php echo apply_filters('the_content', $term->description); ?> <?php endforeach; endif; ?>
额外提示
因为你已经安装了支持富文本编辑分类描述的插件,只要插件正确把格式化内容保存到数据库中,上面的方法就能正常显示富文本啦。如果还是没有效果,可以去数据库的wp_terms表(你的数据库前缀可能不同)里,检查对应分类的description字段是否真的存储了带HTML标记的内容。
备注:内容来源于stack exchange,提问作者Casper Boon
相关产品推荐
相关产品推荐

