Comment créer une barre latérale différente pour les publications uniques par rapport à la page principale?
En ce moment, j'ai 2 pages de travail, une pour les pages et une pour le blog.
merci
voici à quoi ça ressemble dans funtions.php
// 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' );
voici à quoi ça ressemble dans sidebar.php
<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>
Merci !
Je considérerais ce qui suit ...
Enregistrez une nouvelle barre latérale:
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' );
Créez un nouveau modèle de barre latérale:
/** New file: sidebar-single.php */
if ( is_active_sidebar( 'sidebar-single' ) ) :
dynamic_sidebar( 'sidebar-single' );
endif;
Puis modifiez votre modèle 'single.php' pour appeler la nouvelle barre latérale (ci-dessus):
/** Modify single.php */
get_sidebar( 'single' );
Bien sûr, vous aurez besoin de préciser le nouveau fichier de modèle de barre latérale à vue unique ... et la hiérarchie de modèles WordPress se chargera de l’utilisation de votre nouvelle barre latérale sur des vues à publication unique.
Enregistrez les barres latérales:
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'));
Ensuite, dans votre modèle de barre latérale, utilisez les balises conditionnelles is_page()
et 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
}