带有shorcode的Wordpress显示插件小部件

带有shorcode的Wordpress显示插件小部件,wordpress,plugins,widget,shortcode,Wordpress,Plugins,Widget,Shortcode,我创建了一个带有两个小部件的插件。第一个小部件出现在侧边栏中,但第二个小部件需要使用短代码[mywidget]显示在页面帖子中。我如何才能做到这一点?基本上,我需要使用[mywidget]短代码在页面帖子中显示“hello me” //register widget FUNCTION add_action('widgets_init', 'ds_register_widgets'); //call register widget FUNCTION function ds_register_wi

我创建了一个带有两个小部件的插件。第一个小部件出现在侧边栏中,但第二个小部件需要使用短代码[mywidget]显示在页面帖子中。我如何才能做到这一点?基本上,我需要使用[mywidget]短代码在页面帖子中显示“hello me”

//register widget FUNCTION
add_action('widgets_init', 'ds_register_widgets');

//call register widget FUNCTION
function ds_register_widgets(){
    register_widget('ds_bm_info');
    register_widget('ds_bm_odds');
}

//widget class
class ds_bm_info extends WP_Widget { }

//widget class
class ds_bm_odds extends WP_Widget {

function widget( $args, $instance ) {
        echo "hello me";
    }
}

对于简单函数:

add_shortcode('mywidget', 'mywidget_function');

function mywidget_function() {
   echo "Hello me";
}
add_shortcode( 'mywidget', array( 'ds_bm_odds', 'mywidget_function' ) );

class ds_bm_odds extends WP_Widget {

    public function mywidget_function()
    {
        echo "Hello me";
    }
    // ...

}
如果它在小部件类中:

add_shortcode('mywidget', 'mywidget_function');

function mywidget_function() {
   echo "Hello me";
}
add_shortcode( 'mywidget', array( 'ds_bm_odds', 'mywidget_function' ) );

class ds_bm_odds extends WP_Widget {

    public function mywidget_function()
    {
        echo "Hello me";
    }
    // ...

}
两者都应该起作用。但是,如果您不使用管理小部件管理(即,向短代码传递特殊参数),则无需在小部件中注册此短代码