• I would like to use different sidebars for different pages of the site I’m building. I tried going through the online documentation to see what I am supposed to alter to achieve this. Here is the register_sidebar code from the widgets.php file:

    /**
    * Creates multiple sidebars.
    *
    * If you wanted to quickly create multiple sidebars for a theme or internally.
    * This function will allow you to do so. If you don’t pass the ‘name’ and/or
    * ‘id’ in $args, then they will be built for you.
    *
    * The default for the name is “Sidebar #”, with ‘#’ being replaced with the
    * number the sidebar is currently when greater than one. If first sidebar, the
    * name will be just “Sidebar”. The default for id is “sidebar-” followed by the
    * number the sidebar creation is currently at. If the id is provided, and mutliple
    * sidebars are being defined, the id will have “-2” appended, and so on.
    *
    * @since 2.2.0
    *
    * @see register_sidebar() The second parameter is documented by register_sidebar() and is the same here.
    * @uses parse_str() Converts a string to an array to be used in the rest of the function.
    * @uses register_sidebar() Sends single sidebar information [name, id] to this
    * function to handle building the sidebar.
    *
    * @param int $number Number of sidebars to create.
    * @param string|array $args Builds Sidebar based off of ‘name’ and ‘id’ values.
    */
    function register_sidebars($number = 4, $args = array()) {
    global $wp_registered_sidebars;
    $number = (int) $number;

    if ( is_string($args) )
    parse_str($args, $args);

    for ( $i = 1; $i <= $number; $i++ ) {
    $_args = $args;

    if ( $number > 1 )
    $_args[‘name’] = isset($args[‘name’]) ? sprintf($args[‘name’], $i) : sprintf(__(‘Sidebar %d’), $i);
    else
    $_args[‘name’] = isset($args[‘name’]) ? $args[‘name’] : __(‘Sidebar’);

    // Custom specified ID’s are suffixed if they exist already.
    // Automatically generated sidebar names need to be suffixed regardless starting at -0
    if ( isset($args[‘id’]) ) {
    $_args[‘id’] = $args[‘id’];
    $n = 2; // Start at -2 for conflicting custom ID’s
    while ( isset($wp_registered_sidebars[$_args[‘id’]]) )
    $_args[‘id’] = $args[‘id’] . ‘-‘ . $n++;
    } else {
    $n = count($wp_registered_sidebars);
    do {
    $_args[‘id’] = ‘sidebar-‘ . ++$n;
    } while ( isset($wp_registered_sidebars[$_args[‘id’]]) );
    }
    register_sidebar($_args);
    }
    }

    /**
    * Builds the definition for a single sidebar and returns the ID.
    *
    * The $args parameter takes either a string or an array with ‘name’ and ‘id’
    * contained in either usage. It will be noted that the values will be applied
    * to all sidebars, so if creating more than one, it will be advised to allow
    * for WordPress to create the defaults for you.
    *
    * Example for string would be 'name=whatever;id=whatever1' and for
    * the array it would be array(
    * 'name' => 'whatever',
    * 'id' => 'whatever1')
    .
    *
    * name – The name of the sidebar, which presumably the title which will be
    * displayed.
    * id – The unique identifier by which the sidebar will be called by.
    * before_widget – The content that will prepended to the widgets when they are
    * displayed.
    * after_widget – The content that will be appended to the widgets when they are
    * displayed.
    * before_title – The content that will be prepended to the title when displayed.
    * after_title – the content that will be appended to the title when displayed.
    *
    * Content is assumed to be HTML and should be formatted as such, but
    * doesn’t have to be.
    *
    * @since 2.2.0
    * @uses $wp_registered_sidebars Stores the new sidebar in this array by sidebar ID.
    *
    * @param string|array $args Builds Sidebar based off of ‘name’ and ‘id’ values
    * @return string The sidebar id that was added.
    */
    function register_sidebar($args = array()) {
    global $wp_registered_sidebars;

    $i = count($wp_registered_sidebars) + 1;

    $defaults = array(
    ‘name’ => sprintf(__(‘Sidebar %d’), $i ),
    ‘id’ => “sidebar-$i”,
    ‘description’ => ”,
    ‘before_widget’ => ‘<li id=”%1$s” class=”widget %2$s”>’,
    ‘after_widget’ => “\n”,
    ‘before_title’ => ‘<h2 class=”widgettitle”>’,
    ‘after_title’ => “</h2>\n”,
    );

    $sidebar = wp_parse_args( $args, $defaults );

    $wp_registered_sidebars[$sidebar[‘id’]] = $sidebar;

    add_theme_support(‘widgets’);

    do_action( ‘register_sidebar’, $sidebar );

    return $sidebar[‘id’];
    }

  • The topic ‘How to add Multiple sidebars Modern-Clix from newbie..’ is closed to new replies.