0
votes

I have registered a dynamic sidebar as follows register_sidebar(array( 'id' => 'widget-my-header', 'name' => 'My: Header', 'before_widget' => '', 'after_widget' => '', 'before_title' => '', 'after_title' => '', ));

I call the dynamic sidebar in my template.

dynamic_sidebar('widget-my-header');

Is it even possible to inject a custom function into that dynamic_sidebar('widget-my-header'); ?

Say I have a function add_my_cool_headline() And I want that to be the content for this dynamic_sidebar('widget-my-header'); Can htis be done?

I'm using a child theme, so I'm looking to having to replace the dynamic_sidebar('widget-my-header'); with a custom action

I know how to insert my own action hook into every template page, however I'd really like to avoid that. As there are many many theme files where it needs to be changed.

1

1 Answers

2
votes

Just make a class and register your widget in your sidebar

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');