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>
標籤?
是的,刪除它的作品,但即使當我加載所有小部件加載後,它再次添加段落。我無法完全刪除它,因爲其他插件(外部插件)可能會使用它。 –