wake-up-neo.com

Erstellen einer anderen Seitenleiste für einzelne Posts als für die Hauptseite.

Wie kann ich eine andere Seitenleiste für einzelne Posts als für die Hauptseite erstellen?

Momentan arbeite ich mit 2 für Seiten und einer für den Blog

vielen Dank

so sieht es in funtions.php aus

// Register Sidebars
register_sidebar(array('name' => 'Sidebar Blog','id' => 'sidebar-blog'));
register_sidebar(array('name' => 'Sidebar Pages','id' => 'sidebar-pages'));
register_sidebar(array('name' => 'Footer','id' => 'sidebar-footer'));

// Register Menus
register_nav_menu( 'top_navi', 'Top Navigation' );
register_nav_menu( 'main_navi', 'Main Navigation' );

so sieht es in sidebar.php aus

<div id="sidebar">  
    <ul>

<?php
    if(is_page() && is_active_sidebar('sidebar-pages')) : dynamic_sidebar('sidebar-pages');
    elseif(is_active_sidebar('sidebar-blog')) : dynamic_sidebar('sidebar-blog');
else : ?>

    <?php wp_list_categories('title_li=<h2>Categories</h2>'); ?>

    <?php wp_list_pages('title_li=<h2>Pages</h2>'); ?>

    <li><h2>Archives</h2>
        <ul>
        <?php wp_get_archives(); ?>
        </ul>
    </li>

    <?php wp_list_bookmarks(); ?>

<?php endif; ?>

    </ul>
</div>

Vielen Dank !

1
qaedus

Ich würde folgendes in Betracht ziehen ...

Registrieren Sie eine neue Seitenleiste:

function your_new_widget() {
register_sidebar( array(
    'name'          => __( 'Single View Sidebar', 'your_textdomain' ),
    'id'            => 'sidebar-single',
    'description'   => __( 'This widget area is found only on the single post view.', 'your_textdomain' ),
) );
}
add_action( 'widgets_init', 'your_new_widget' );

Erstellen Sie eine neue Seitenleistenvorlage:

/** New file: sidebar-single.php */
if ( is_active_sidebar( 'sidebar-single' ) ) :
    dynamic_sidebar( 'sidebar-single' );
endif;

Ändern Sie dann Ihre 'single.php'-Vorlage, um die neue Seitenleiste aufzurufen (oben):

/** Modify single.php */
get_sidebar( 'single' );

Natürlich müssen Sie die neue Sidebar-Vorlagendatei für eine einzelne Ansicht ausarbeiten ... und die WordPress-Vorlagenhierarchie übernimmt die Verwendung Ihrer neuen Sidebar für einzelne Post-Ansichten.

1
Edward Caissie

Registrieren Sie die Seitenleisten:

register_sidebar(array('name' => 'Sidebar Blog','id' => 'sidebar-blog'));
register_sidebar(array('name' => 'Sidebar Pages','id' => 'sidebar-pages'));
register_sidebar(array('name' => 'Sidebar Post','id' => 'sidebar-posts'));

Verwenden Sie dann in Ihrer Seitenleistenvorlage die bedingten Tags is_page() und is_single():

if( is_page() && is_active_sidebar('sidebar-pages') ){
     dynamic_sidebar('sidebar-pages');

}elseif( is_single() && is_active_sidebar('sidebar-posts') ){
     dynamic_sidebar('sidebar-posts');

}elseif( is_active_sidebar('sidebar-blog') ){
     dynamic_sidebar('sidebar-blog');

}else{
    //Default
}
0
Stephen Harris