Skip to main content

Sidebars

FREE!

Premium custom sidebars in minutes.

Create as many dynamic sidebars and widget areas as you need and assign them per page, post or template — no limits, no paid tier.

Brings another layer of customization freedom to your website by letting you add more than one sidebar to a page, or different sidebars on different pages.

In WordPress, a sidebar doesn't have to be a column down the side of the page — it just means a widget area: a named region you can drop widgets (a search box, recent posts, a menu, an ad) into. It might appear beside your content, in the footer, or anywhere the theme places it. This extension lets you create several of these areas and choose which one shows on which page.

Configuration​

<?php if (!defined('FW')) die('Forbidden');

// file: framework-customizations/extensions/sidebars/config.php

$cfg = array(
'sidebar_positions' => array(
'position-id' => array(
/**
* Image from: framework-customizations/extensions/sidebars/images/
* (required)
*/
'icon_url' => 'picture.png',
/**
* Number of sidebars on page.
* The maximum number is 4.
* (optional)
* (default 0)
*/
'sidebars_number' => 0
),
// other positions ...
),
/**
* Array that will be passed to register_sidebar($args)
* Should be without 'id' and 'name'.
* Will be used for all dynamic sidebars.
*/
'dynamic_sidebar_args' => array(
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h3>',
'after_title' => '</h3>',
),
/**
* Render sidebar metabox in post types.
* By default is set to false.
* If you want to render sidebar in post types set it to true.
*/
'show_in_post_types' => false
);

Helpers​

  • fw_ext_sidebars_show($color) - display sidebar in frontend. The parameter $color is the color of the sidebar selected from the WordPress admin and can be: blue, yellow, green or red.

  • fw_ext_sidebars_get_current_position() - can be called in the frontend to find out current position name. It returns position-id from $cfg['sidebar_positions'], or null.

  • fw_ext_sidebars_get_current_preset() - can be called in the frontend to find out the sidebar's settings for current page template.

    // file: sidebar-content.php

    <?php if (!defined('FW')) die('Forbidden');

    $current_position = fw_ext_sidebars_get_current_position();

    if ($current_position !== 'position-id') {
    echo fw_ext_sidebars_show('green');
    }

    if ($current_position === 'position-id-2') {
    echo fw_ext_sidebars_show('blue');
    }

    if ($current_position === 'position-id-3') {
    echo fw_ext_sidebars_show('yellow');
    }

Filters​

  • fw_ext_sidebars_post_types - use this filter to change/remove post types that are used in extension.

    /** @internal */
    function _filter_remove_post_type_from_sidebars($post_types_list) {
    unset($post_types_list['post_type_name']);

    return $post_types_list;
    }
    add_filter('fw_ext_sidebars_post_types', '_filter_remove_post_type_from_sidebars' );
  • fw_ext_sidebars_taxonomies - use this filter to change/remove taxonomies that are used in extension.

    /** @internal */
    function _filter_remove_taxonomy_from_sidebars($taxonomy_list) {
    unset($taxonomy_list['taxonomy_name']);

    return $taxonomy_list;
    }
    add_filter('fw_ext_sidebars_taxonomies', '_filter_remove_taxonomy_from_sidebars');
  • fw_ext_sidebars_conditional_tags - use this filter to change/remove/add conditional tags that are used in extension.

    /** @internal */
    function _filter_fw_ext_sidebars_add_conditional_tag($conditional_tags) {
    $conditional_tags['is_archive_page_slug'] = array(
    'order_option' => 2, // (optional: default is 1) position in the 'Others' lists in backend
    'check_priority' => 'last', // (optional: default is last, can be changed to 'first') use it to change priority checking conditional tag
    'name' => __('Portfolio archive', '{domain}'), // conditional tag title
    'conditional_tag' => array(
    'callback' => 'is_post_type_archive', // existing callback
    'params' => array('fw-portfolio') //parameters for callback
    )
    );

    return $conditional_tags;
    }
    add_filter('fw_ext_sidebars_conditional_tags', '_filter_fw_ext_sidebars_add_conditional_tag' );