Why can’t I see “Widgets” in my Apperance menu?

There are 2 problems here ( and a third unrelated problem )

Problem 1

You’re calling register_widgetArea, a function that doesn’t exist. Instead, you want to register a sidebar. If no sidebars are registered, the widgets menu does not appear in the admin area. Instead, use register_sidebar to register your sidebar.

I would expect calling register_widgetArea would generate a fatal error in PHP, but that doesn’t happen because of Problem 2

Problem 2

Sidebars should be registered on the widgets_init action, but you’ve used the widget_init action, which is never called. This is why your code did not generate fatal errors, as the function is never being called.

Problem 3

You’ve created a new widget, but it’s not enough to define a class inheriting from WP_Widget, it needs to be registered too. A word of warning, a lot of examples try to use create_function when registering a widget to make the code shorter. This is bad, and equivalent to using eval, and encourages bad practices. Instead, declare a function the normal way and use its name.

I would also recommend that you either use PHP namespaces, or add prefixes to your functions and classes. Generic names can clash when other developers use the same names. Make sure that doesn’t happen by prefixing your names, e.g. jg_widget_areas or jg_featured_widget

tech