如何解决如果我不在循环中使用 wp_reset_postdata() ,WordPress 会添加 <p> 和 <br> 标签为什么?
我有一个用于自定义帖子类型数据的简单 wordpress WP 查询循环。由于使用 FacetWP 过滤数据,我必须删除 wp_reset_postdata()
。否则 ajax 过滤不起作用。
但是如果我删除 wp_reset_postdata()
,wordpress 会在我的 HTML 内容中添加很多 p
和 br
标签。为什么?
我的代码:
// WP_Query args
$args = array(
'posts_per_page' => 20,'order' => 'ASC','orderby' => 'title','ignore_sticky_posts' => true,'post_type' => 'abc','facetwp' => true
);
// The Query
$abc_query = new \WP_Query($args);
// The Loop
if ( $abc_query->have_posts() ) {
while ( $abc_query->have_posts() ) {
$abc_query->the_post();
?>
<div id="abc-wrapper">
<ul class="abc-list">
<li class="abc-list-elem">
<h4 class="abc-title">
<?PHP the_title(); ?>
</h4>
<span class="abc-desc">
<?PHP the_content(); ?>
</span>
<?PHP
$terms = get_the_terms(get_the_ID(),'abc_types');
foreach($terms as $t) {
?>
<span class="abc-badge">
<?PHP echo $t->name ?>
</span>
<?PHP
}
?>
</li>
</ul>
</div>
<?PHP
}
} else {
// There are no posts
}
}
如果我不使用 p
重置 postdata,你知道为什么 wordpress 会添加很多 br
和 wp_reset_postdata()
标签吗?
解决方法
wp_reset_postdata
对 the_content
格式没有影响。
在循环完成一个单独的查询后,该函数将 $post
全局恢复到主查询中的当前帖子。
当您在循环中输出内容时,您可以清理输出以使用 wp_strip_all_tags
删除任何和所有标签。
正确去除所有 HTML 标签,包括脚本和样式。
<?php wp_strip_all_tags( the_content(),true ); ?>
(true
或 false
用于换行)。
或者,您可以通过在 <p>
文件中通过 wpautop
删除 remove_filter
来删除作为换行符应用的任何自动 function.php
标记。
<?php remove_filter( 'the_content','wpautop' ); ?>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。