web-dev-qa-db-ja.com

ウィジェット内からサイドバーパラメータ(before_widget、before_titleなど)を取得する

ウィジェット内からサイドバーのパラメータを動的に取得することは可能ですか?つまり、収容サイドバーの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;
}

これは可能ですか?

5
supertrue

パラメータはwidgetメソッドに渡される最初の引数として(配列として)与えられます。 2番目の引数$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;

 }
3
Stephen Harris