web-dev-qa-db-ger.com

doppelte Seitenleiste

Ich habe ein Problem mit einer Seitenleiste. Ich habe 4 Seitenleisten: "Essential", "Essential +", "Premier" und "Premier +".

register_sidebar(
     array(
         'name'          => __('Essential Plan'),
         'before_widget' => '<ul>',
         'after_widget'  => '</ul>',
         'before_title'  => '',
         'after_title'   => ''
    )
);
register_sidebar(
    array(
         'name'          => __('Premier Plan'),
         'before_widget' => '<ul>',
         'after_widget'  => '</ul>',
         'before_title'  => '',
         'after_title'   => ''
    )
);
register_sidebar(
    array(
         'name'          => __('Essential+ Plan'),
         'before_widget' => '<ul>',
         'after_widget'  => '</ul>',
         'before_title'  => '',
         'after_title'   => ''
    )
);
register_sidebar(
    array(
         'name'          => __('Premier+ Plan'),
         'before_widget' => '<ul>',
         'after_widget'  => '</ul>',
         'before_title'  => '',
         'after_title'   => ''
    )
);

Ich muss "Premier" und "Premier +" auf derselben Seite rendern. Wenn ich dies tue, rendert WordPress den gleichen Inhalt für beide Seiten. Wie kann ich das beheben?
Warum passiert dies?

2
Rommel Castro A

Versuchen Sie, jeder dynamischen Seitenleiste eineeindeutige IDzuzuweisen. Verwenden Sie dazu den Parameter id, der an register_sidebar() :

register_sidebar(
        array(
             'id'            => 'essential',
             'name'          => __('Essential Plan'),
             'before_widget' => '',
             'after_widget'  => '',
             'before_title'  => '',
             'after_title'   => ''
        )
    );

    register_sidebar(
        array(
             'id'            => 'premier',
             'name'          => __('Premier Plan'),
             'before_widget' => '',
             'after_widget'  => '',
             'before_title'  => '',
             'after_title'   => ''
        )
    );

    register_sidebar(
        array(
             'id'            => 'essential-plus',
             'name'          => __('Essential+ Plan'),
             'before_widget' => '',
             'after_widget'  => '',
             'before_title'  => '',
             'after_title'   => ''
        )
    );

    register_sidebar(
        array(
             'id'            => 'premier-plus',
             'name'          => __('Premier+ Plan'),
             'before_widget' => '',
             'after_widget'  => '',
             'before_title'  => '',
             'after_title'   => ''
        )
    );

Und rufen Sie dann jeden per ID an:

dynamic_sidebar( 'essential' );
dynamic_sidebar( 'premier' );
dynamic_sidebar( 'essential-plus' );
dynamic_sidebar( 'premier-plus' );

Sie sollten jedoch in der Lage sein, sie über name oder ID aufzurufen:

dynamic_sidebar( 'Essential Plan' );
dynamic_sidebar( 'Premier Plan' );
dynamic_sidebar( 'Essential+ Plan' );
dynamic_sidebar( 'Premier+ Plan' );

... es sei denn, das "+" wird vom Parameter bereinigt?

1
Chip Bennett