挂钩到Widget输出循环

时间:2013-04-21 作者:Sisir

当wordpress边栏输出任何特定registered sidebar 它循环通过它分配的所有小部件并输出它(我猜)。可以挂接到循环中并添加一些内容,例如I want to add a ad code every three widgets.

What I have tried? 找不到任何线索。试图搜索wordpress源代码,但不确定要搜索什么。正在搜索widgetwidget loop 没有帮助。

2 个回复
最合适的回答,由SO网友:fuxia 整理而成

钩入\'dynamic_sidebar\' 并计算它被调用的频率。

您可以使用key( $GLOBALS[\'wp_registered_sidebars\'] ).

add_action( \'dynamic_sidebar\', \'wpse_96681_hr\' );

function wpse_96681_hr( $widget )
{
    static $counter = 0;

    // right sidebar in Twenty Ten. Adjust to your needs.
    if ( \'primary-widget-area\' !== key( $GLOBALS[\'wp_registered_sidebars\'] ) )
        return;

    if ( 0 !== $counter && 0 === $counter % 3 )
        print \'<hr>\';

    $counter += 1;
}

SO网友:s_ha_dum

几乎和托肖的一样,但我上了一节课。

class SideBar_Inserter {
  static $count = 0;

  function __construct() {
    add_action( \'dynamic_sidebar\', array($this,\'insert_into_sidebar\') );
  }

  function insert_into_sidebar($s) {
    if (static::$count !== 0 && static::$count%3 === 0) {
      echo static::$count;
    }
    static::$count++;
  }
}
$sidebar_inserter = new SideBar_Inserter;
这是经过测试的。它起作用了。

结束

相关推荐

Using tabs in admin widgets

更新:我应该指出,我在插件/主题选项页面上测试了下面的方法,效果非常好。事实上,我还能够包括jQuery cookie插件,以保留页面加载之间的当前选项卡选择(很好!)。当您有多个小部件选项时,尝试向管理小部件添加选项卡以减少表单占用空间。我正在使用WordPress附带的jQuery UI选项卡。以下是我迄今为止在插件中编写的代码。http://pastebin.com/fe4wdBcp当小部件被拖动到小部件区域时,选项卡似乎呈现为OK,但您无法单击查看第二个选项卡。更糟糕的是,如果刷新窗口小部件页面,