Register widget area and display the widget in WordPress

For registering a widget use this piece of code in your functions.php.
Remember you must call it with a widgets_init action hook.

function site_widgets_init() {
	register_sidebar(
		array(
			'name'          => esc_html__( 'widget name', 'text-domain' ),
			'id'            => 'widget-name',
			'description'   => esc_html__( 'Add widgets here.', 'text-domain' ),
			'before_widget' => '<section id="%1$s" class="widget %2$s">',
			'after_widget'  => '</section>',
			'before_title'  => '<h2 class="widget-title">',
			'after_title'   => '</h2>',
		)
	);
}
add_action( 'widgets_init', 'site_widgets_init' );