it-swarm.com.de

Wie erstelle ich meine eigene Sidebar im Twenty Eleven Child Theme?

Wenn ich Widgets im Twenty Eleven-Design konfiguriere, stehen 5 Seitenleisten zur Verfügung:

  • Haupt-Seitenleiste
  • Seitenleiste anzeigen
  • 1. Spalte der Fußzeile
  • 2. Spalte der Fußzeile
  • 3. Spalte der Fußzeile

In einem untergeordneten Thema möchte ich die Seitenleiste für Posts unterstützen, was mit diesen Anweisungen und gleichzeitig mit der Hauptseitenleiste auf der Homepage recht einfach ist sollte sich von der Seitenleiste auf den einzelnen Seiten unterscheiden.

Kann ich einen neuen "Sidebar-Bereich" erstellen, in den Widgets im Admin-Bereich gezogen und dort abgelegt werden können? Oder sollte ich vielleicht etwas wie die 3. Spalte eines Fußzeilenbereichs verwenden (den ich in meinem Blog nicht verwende), um dies zu unterstützen? Würde ich sie get_sidebar() durch etwas anderes in der geänderten single.php-Datei ersetzen?

1
Borek Bernard

Ich glaube ich verstehe was ich suche. Ich habe einen Code aus Teilen meiner Themen zusammengestellt, um Ihnen ein Beispiel zu geben.

Für die functions.php:

<?php
add_action( 'after_setup_theme', 'ideatree_init' );
if ( ! function_exists( 'ideatree_init' ) ):
function ideatree_init() {
// REGISTER THE NAV MENUS (3 in this case)
add_action( 'init', 'register_my_menus' );
function register_my_menus() {
register_nav_menus(
    array(
        'main' => 'main' ,
        'secondary' => 'secondary',
        'tertiary' => 'tertiary'
        )
    );
}
// REGISTER THE SIDBARS
if ( !function_exists('ideatree_widgets_init') ) {
function ideatree_widgets_init() {
    register_sidebar( array(
        'name' => __( 'main-widget', 'ideatree'),
        'id' => 'main-widget',
        'description' => 'The Main widget', 'ideatree' ,
        'before_widget' => '<ul><li id="%1$s" class="widget-container %2$s">',
        'after_widget' => '</li></ul>',
        'before_title' => '<h3 class="widgettitle">',
        'after_title' => '</h3>',
    ) );
    register_sidebar( array(
        'name' => 'showcase-widget', 'ideatree',
        'id' => 'showcase-widget',
        'description' => 'The showcase-widget', 'ideatree' ,
        'before_widget' => '<ul><li id="%1$s" class="widget-container %2$s">',
        'after_widget' => '</li></ul>',
        'before_title' => '<h3 class="widgettitle">',
        'after_title' => '</h3>',
    ) );
    register_sidebar( array(
        'name' => 'First Footer Widget', 'ideatree',
        'id' => 'first-footer-widget',
        'description' => 'The first footer widget', 'ideatree' ,
        'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
        'after_widget' => '</li>',
        'before_title' => '<h3 class="widgettitle">',
        'after_title' => '</h3>',
    ) );
    register_sidebar( array(
        'name' => 'Second Footer Widget', 'ideatree',
        'id' => 'second-footer-widget',
        'description' => 'The second footer widget', 'ideatree',
        'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
        'after_widget' => '</li>',
        'before_title' => '<span class="widgettitle">',
        'after_title' => '</span>',
    ) );
    register_sidebar( array(
        'name' => 'Third Footer Widget', 'ideatree',
        'id' => 'third-footer-widget',
        'description' => 'The third footer widget', 'ideatree',
        'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
        'after_widget' => '</li>',
        'before_title' => '<h3 class="widgettitle">',
        'after_title' => '</h3>',
    ) );
}
add_action( 'widgets_init', 'ideatree_widgets_init' );
}
//===============\\ VARIOUS WP THEME SUPPORTS //===================
    if ( ! isset( $content_width ) ) $content_width = 600;
      add_theme_support( 'post-thumbnails' );
      add_image_size( 'bigmutha',580, 180, true ); //Can be used for Portfolio etc...
      add_theme_support('automatic-feed-links');
  }
endif;
?> 

Für die sidebar.php:

<div id="sidebar">

  <?php /** Home Page Sidebar */
    if ( is_page('Home') ) { 
    ?>  
      <div id="main-sidebar">
        <?php if ( ! dynamic_sidebar( 'main-widget' ) ) : 
          endif; ?>
      </div>

  <?php /** showcase page sidebar */ }
    if ( is_page('showcase') ) { 
    ?>
    <div id="showcase-sidebar">
        <?php if ( ! dynamic_sidebar( 'showcase-widget' ) ) : 
          endif; ?>
    </div>
  <?php } ?>

</div>

Die footer.php Datei:

<div id="footer">
  <div class="left-footer">
    <?php if ( function_exists ( dynamic_sidebar(3) ) ) : ?>
        <?php dynamic_sidebar (3); ?>
    <?php endif; ?>
  </div>
  <div class="middle-footer">
    <?php if ( function_exists ( dynamic_sidebar(4) ) ) : ?>
        <?php dynamic_sidebar (4); ?>
    <?php endif; ?>
  </div>
  <div class="right-footer">
    <?php if ( function_exists ( dynamic_sidebar(5) ) ) : ?>
        <?php dynamic_sidebar (5); ?>
    <?php endif; ?>
  </div>
</div><!-- End Footer -->
<?php wp_footer(); ?>
</body>
</html>

Sie sollten dies zuerst auf einem Testserver ausprobieren. Wie ich bereits erwähnte, ist dies von zwei verschiedenen Themen gepflückt und nicht zusammen getestet worden. Es sollte aber für Sie arbeiten. Lassen Sie mich wissen, wenn Sie Fragen haben.

1
Jeremy Jared