2016-01-22 55 views
0

我遇到了一個很大的問題。我在我的模板中使用了幾個簡碼,但輸出始終是錯誤的。它將幾個</p>標籤添加到我的輸出中,即使添加了過濾器。Wordpress 4. *在使用get_template_時添加段落的簡碼*

即使沒有打開<p>標籤,也設置爲</p>

這是我的代碼的一部分。我嘗試了一切刪除段落,但沒有結果。

我已經縮小了代碼以便於閱讀。

function pull_team_shortcode($atts) { 
    $output = ''; 
    $tplgenerator = new Team_Template_Generator(); 
    $output .= $tplgenerator->generate_output(); 
    $output = trim($output); 
    return "<div>" . bic_rm_wpautop($output) . "</div>"; 
} 

add_shortcode('simple-team', 'pull_team_shortcode', 25); 

一個簡單的截斷類來加載模板並將其返回。

class Team_Template_Generator { 
    public function generate_output() { 
     ob_start(); 
      set_query_var('myposts', get_posts($args)); 
      get_template_part($this->templates . $this->template_name); 
      $var = ob_get_contents(); 
      ob_get_clean(); 
      return trim($var, ".\r\n"); 
     } 
    } 
} 

和模板..

<?php 
$extra_class = get_query_var("extra_class"); 
$title = get_query_var("title"); 
$subtitle = get_query_var("subtitle"); 
?><section class="team"> 
    <div class="row<?php if ($extra_class != "") echo " " . $extra_class; ?>"> 
     <div class="col-md-10 col-md-offset-1"> 
      <div class="col-lg-12"> 
       <?php 
       if ($title != "" || $subtitle != "") { 
        ?> 
        <div class="border-title"> 
         <?php 
         if ($title != "") { 
          echo '<h2>' . esc_html($title) . '</h2>'; 
         } 
         ?> 
         <div class='ico-border'> <i class='ico-bg flower'></i> </div> 
         <span class="tag-line"> 
          <?php 
          if ($subtitle != "") { 
           echo esc_html($subtitle); 
          } 
          ?> 
         </span> 
        </div> 
       <?php } ?> 
       <div class="row pt-md"> 
        <?php 
//valid meta fields: 
// short_bio, email, designation, web_url, telephone, location, social, profile_title, profile_linkedin, _thumbnail_id 
        foreach (get_query_var("myposts") as $post) { 
         //  echo "<pre>" . print_r($post, true) . "</pre>"; 
         $meta = get_post_custom($post->ID); 
         ?> 
         <div class="col-lg-2 col-md-2 col-sm-col-xs-12 profile"> 
          <div class="img-box"> 
           <?php the_post_thumbnail("medium", array('class' => 'img-responsive')); ?> 
           <ul class="text-center"> 
            <li><a href="<?php echo $meta['profile_facebook'][0]; ?>"><i class="fa fa-facebook"></i></a></li> 
            <li><a href="<?php echo $meta['profile_twitter'][0]; ?>"><i class="fa fa-twitter"></i></a></li> 
            <li><a href="<?php echo $meta['profile_linkedin'][0]; ?>"><i class="fa fa-linkedin"></i></a></li> 
           </ul> 
          </div> 
          <h1><?php echo trim($post->post_title); ?></h1> 
          <h2><?php echo trim($meta['profile_title'][0]); ?></h2> 
          <div><?php echo trim($post->post_content); ?></div> 
         </div> 
        <?php } ?></div></div></div></div></section> 

這是它增加了</p>標籤,即使他們沒有之前打開輸出的一部分。

<li><a href="https://www.facebook.com/name"><i class="fa fa-facebook"></i></a></li> 
<li><a href="http://www.titter.com/name"><i class="fa fa-twitter"></i></a></li> 
<li><a href="http://www.linkedin.com/name"><i class="fa fa-linkedin"></i></a></li> 
</ul></div> 
<h1>Christian Stimmer</h1> 
<h2>Sales Leader</h2> 
<div>Christian Stimmer Data</div> 
</p></div> 
</p></div> 
</div> 
</div> 
</div> 
</section> 
</div> 

之前,我已經包括用於添加短代碼我的functions.php下面的技巧已經添加了文件:

remove_filter('the_content', 'wpautop'); 
add_filter('the_content', 'wpautop', 99); 

但這並沒有改變任何東西。任何想法爲什麼它仍然生成</p>標籤?

回答

0

只是爲了檢查:你是否嘗試刪除wpautop而不是再次添加它?你還有額外的線路嗎?

+0

是的,刪除它的作品,但即使當我加載所有小部件加載後,它再次添​​加段落。我無法完全刪除它,因爲其他插件(外部插件)可能會使用它。 –