0

次のように動的サイドバーを登録しました register_sidebar(array( 'id' => 'widget-my-header', 'name' => 'My: Header', 'before_widget' => '', 'after_widget' => ' ', 'before_title' => '', 'after_title' => '', ));

テンプレートで動的サイドバーを呼び出します。

dynamic_sidebar('widget-my-header');

その dynamic_sidebar('widget-my-header'); にカスタム関数を挿入することさえ可能ですか? ?

関数 add_my_cool_headline() があり、それをこの dynamic_sidebar('widget-my-header'); のコンテンツにしたいとします。できますか?

私は子テーマを使用しているので、dynamic_sidebar('widget-my-header'); を置き換える必要があると考えています。カスタムアクションで

すべてのテンプレート ページに独自のアクション フックを挿入する方法は知っていますが、それは避けたいと思っています。変更が必要なテーマファイルが多数あるためです。

4

1 に答える 1

2

クラスを作成し、ウィジェットをサイドバーに登録するだけです

if ( function_exists('register_sidebar') ) {
    register_sidebar(array('name' => 'widget-my-header','before_widget' => '<div class="widget">','after_widget' => '</div>','before_title' => '<span>','after_title' => '</span>'));
}
class MYHeaderWidget extends WP_Widget {
    function MYHeaderWidget() {
    //Constructor
        $widget_ops = array('classname' => 'MYHeaderWidget Widget', 'description' => 'MYHeaderWidget' );
        $this->WP_Widget('MYHeaderWidget', 'widget-my-header', $widget_ops);
    }
    function widget($args, $instance) {
    // prints the widget
        extract($args, EXTR_SKIP);   ?>
<div class="">Hello</div>

    <?php
    }


}
register_widget('MYHeaderWidget');
于 2013-07-10T20:24:10.360 に答える