As noted by Shibi’s comment, you want to use footer_options as your argument to dynamic_sidebar as that is the id you assigned in your code.
Keep in mind, both dynamic_sidebar and is_active_sidebar only check for individual sidebars. If you have multiple sidebars (representing neighboring regions) you need to display in your footer, you may need to perform additional conditional checks (with an OR condition at the top level) and rendering calls in series within your desired footer DOM element(s) like:
<div class="widgets">
<?php if ( is_active_sidebar( 'footer_widgets' ) || (is_active_sidebar('custom_copyright_region')) : ?>
<ul id="sidebar">
<?php if ( is_active_sidebar( 'footer_widgets' )) : ?>
<div id="footer-region1">
<?php dynamic_sidebar( 'footer_widgets' ); ?>
</div>
<?php endif; ?>
<?php if(is_active_sidebar('custom_copyright_region')) :?>
<div id="footer-region2">
<?php dynamic_sidebar( 'custom_copyright_region' ); ?>
</div>
<?php endif; ?>
</ul>
<?php endif; ?>
</div>
- Use
dynamic_sidebar()
to render all the widgets associated to the designated sidebar (your custom widget will only appear if it is assigned on the widget’s page). - Use
the_widget()
to call and render the widget anywhere in your theme (regardless of if it has been assigned on the widget’s page- this technique assumes you’ve defined default values programmatically for your widget to render) [for instance, one might show a calendar view of all related events underneath an event detail page’s main copy].