微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果我不在循环中使用 wp_reset_postdata() ,WordPress 会添加 <p> 和 <br> 标签为什么?

如何解决如果我不在循环中使用 wp_reset_postdata() ,WordPress 会添加 <p> 和 <br> 标签为什么?

我有一个用于自定义帖子类型数据的简单 wordpress WP 查询循环。由于使用 FacetWP 过滤数据,我必须删除 wp_reset_postdata()。否则 ajax 过滤不起作用。

但是如果我删除 wp_reset_postdata()wordpress 会在我的 HTML 内容添加很多 pbr 标签。为什么?

我的代码

// 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添加很多 brwp_reset_postdata() 标签吗?

解决方法

wp_reset_postdatathe_content 格式没有影响。

在循环完成一个单独的查询后,该函数将 $post 全局恢复到主查询中的当前帖子。

当您在循环中输出内容时,您可以清理输出以使用 wp_strip_all_tags 删除任何和所有标签。

正确去除所有 HTML 标签,包括脚本和样式。

<?php wp_strip_all_tags( the_content(),true ); ?>

truefalse 用于换行)。

或者,您可以通过在 <p> 文件中通过 wpautop 删除 remove_filter 来删除作为换行符应用的任何自动 function.php 标记。

<?php remove_filter( 'the_content','wpautop' ); ?>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。