获取侧边栏参数(BEFORE_WIDGET、BEFORE_TITLE等)从小部件内

时间:2012-06-25 作者:supertrue

是否可以从小部件中动态获取侧栏参数?也就是说,我正在尝试访问before_widget/after_widget/before_title/after_title/name 包含侧栏的参数。

假设我们有一个这样注册的提要栏:

register_sidebar( array(
    \'name\' => "Homepage Sidebar",
    \'id\' => \'homepage-sidebar\',
    \'before_widget\' => \'<div id="%1$s" class="widget-container %2$s">\',
    \'after_widget\' => \'</div>\',
    \'before_title\' => \'<h2 class="widget-title">\',
    \'after_title\' => \'</h2>\',
) );
如何从我的小部件内部访问这些值widget() 作用比如,我该怎么做这样的事情:

public function widget( $args, $instance ) {
    // outputs the content of the widget
    if ($someCondition)
        echo $sidebar->before_title . \'My widget title\' . $sidebar->before_title;
    echo \'You are looking at \' . $sidebar->name;
}
这可能吗?

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

参数(作为数组)作为提供给widget 方法第二个论点,$instance, 保存小部件特定实例的选项。

我通常的设置是:

 function widget($args, $instance){
    //Extract the widget-sidebar parameters from array
    extract($args, EXTR_SKIP);

    echo $before_widget;
    echo $before_title;
    //Display title as stored in this instance of the widget
    echo esc_html($instance[\'title\']); 
    echo $after_title;
    //Widget content
    echo $after_widget;

 }

SO网友:Samiul Amin Shanto

仅使用变量名,如:

$name
$before_title
$after_title
$before_widget
$after_widget

结束