如何显示WP125小部件的多个实例?

时间:2011-02-27 作者:Geo

我有多个侧边栏,基于不同的页面。我怎样才能the WP125 widget 在他们身上展示??一旦我将其添加到一个侧边栏中,就无法将其添加到其他侧边栏中(顺便说一下,就像许多其他小部件一样)。

只是为了澄清一下,这个小部件的多个实例具有相同的内容。换句话说,同一个小部件但位于多个页面上(具有不同的侧栏)

注册功能下方:

//Create Widget
function wp125_create_ad_widget() {
        register_sidebar_widget(__(\'WP125\'), \'wp125_write_ads_widget\');
}
在我添加的行下方,查看是否在小部件区域中创建了另一个小部件:

        register_sidebar_widget(__(\'WP125-2\'), \'wp125_write_ads_widget\'); //nothing happens with this line added.
The rest of the wp125.php file:

function wp125_write_ads_widget($args) {
        extract($args);
        echo $before_widget;
        if (get_option("wp125_widget_title")!=\'\') {
                echo "\\n".$before_title; echo get_option("wp125_widget_title"); echo $after_title;
        }
        wp125_write_ads();
        echo $after_widget;
}

2 个回复
SO网友:Bainternet

您有两种选择:

使用"new" widget api 作为一个类,它将是多实例小部件。

或者查找注册小部件的行,并使用新名称注册相同的小部件,例如查找:

register_sidebar_widget(array(\'Content License\', \'widgets\'), \'widget_cc\');
并替换为:

register_sidebar_widget(array(\'Content License 1\', \'widgets\'), \'widget_cc\');
register_sidebar_widget(array(\'Content License 2\', \'widgets\'), \'widget_cc\');
register_sidebar_widget(array(\'Content License 3\', \'widgets\'), \'widget_cc\');
register_sidebar_widget(array(\'Content License 4\', \'widgets\'), \'widget_cc\');

SO网友:Maanshubha

//创建Widget
函数wp125\\u Create\\u ad\\u Widget(){
register\\u sidebar\\u Widget(\\uuU(\'wp125\'),\'wp125\\u write\\u ads\\u Widget\');

replace the above function with the below function,

//创建小部件
函数wp125\\u Create\\u ad\\u Widget(){
wp\\u register\\u sidebar\\u Widget(\'wp125 1\',\'wp125\',\'wp125\',\'wp125\\u write\\u ads\\u Widget\');
wp\\u register\\u sidebar\\u Widget(\'wp125 2\',\'wp125\',\'wp125\',\'wp125\\u write\\u ads\\u Widget\');

这是我的工作,希望它能帮助你。

结束