ob_get_contents()和apply_filters

时间:2016-05-06 09:47:49

标签: wordpress filter hook

我一直在寻找提高编码技巧的方法,并开始了解ob_get_contents(),因为我发现它在任何地方都被使用过。

因此,我想改进下面的代码(可能还有其他钩子),这样就可以更容易地添加额外的标签链接和窗格(在子主题中),而无需修改原始代码。

<?php ob_start(); ?>

 <!-- Tab links -->
 <ul class="nav nav-tabs" role="tablist">
    <li><a href="#" aria-controls="home" role="tab" data-toggle="tab">Home</a></li>
    <li><a href="#" aria-controls="profile" role="tab" data-toggle="tab">Profile</a></li>
  </ul>

  <!-- Tab panes -->
  <div class="tab-content">
    <div role="tabpanel" class="tab-pane active" id="home">...</div>
    <div role="tabpanel" class="tab-pane" id="profile">...</div>
  </div>

<?php 

$output = ob_get_contents();

ob_end_clean(); 

echo apply_filters('theme_tabs', $output);

?>

我首先考虑使用do_actions,但如果我想切换标签链接(或窗格)怎么办? E.g:

 <ul class="nav nav-tabs" role="tablist">
    <li><a href="#" aria-controls="home" role="tab" data-toggle="tab">Home</a></li>
    <li><a href="#" aria-controls="profile" role="tab" data-toggle="tab">Profile</a></li>
  </ul>

变为

   <ul class="nav nav-tabs" role="tablist">
    <li><a href="#" aria-controls="profile" role="tab" data-toggle="tab">Profile</a></li>
    <li><a href="#" aria-controls="home" role="tab" data-toggle="tab">Home</a></li>
  </ul>

是否有人愿意提供一个如何更改代码的示例以及我将放置在我的子主题中以在我的标签内进行修改的函数示例? 教程的额外链接也非常感谢。

0 个答案:

没有答案