我希望在我的索引,存档和帖子页面上实现相同的侧边栏,但我遇到了一些麻烦。我已经意识到我无法将此代码直接放入侧边栏文件中,我需要在functions.php文件中注册侧边栏。但是,我不确定如何在functions.php文件中注册我的代码。
我是否应该为每个部分注册一个侧边栏(在这种情况下,搜索,类别,档案)?还是我过于复杂化了?
感谢任何帮助和见解!
以下是我的补充工具栏代码:
<div class="col-md-4">
<div class="well">
<h4>Search</h4>
<div class="input-group">
<?php get_search_form(); ?>
</div>
<!-- /.input-group -->
</div>
<!-- Blog Categories Well -->
<div class="well">
<h4>Categories</h4>
<div class="row">
<div class="col-lg-6">
<ul class="list-unstyled"><?php _e(); ?>
<li>
<?php wp_list_cats(); ?>
</li>
</ul>
</div>
</div>
<!-- /.row -->
</div>
<div class="well">
<h4>Archives</h4>
<div class="input-group">
<select name="archive-dropdown" onchange="document.location.href=this.options[this.selectedIndex].value;" id="dd">
<option value=""><?php echo esc_attr( __( 'Select Month' ) ); ?></option>
<?php wp_get_archives( array( 'type' => 'monthly', 'format' => 'option', 'show_post_count' => 1 ) ); ?>
</select>
</div>
<!-- /.input-group -->
</div>
</div>
答案 0 :(得分:0)
您在functions.php
或functions.php
文件中包含的文件中所需要做的就是添加register_sidebar
这样的功能:
register_sidebar(array (
'name' => esc_html__( 'Primary Sidebar', 'mytheme'),
'id' => 'primary-widget-area',
'description' => esc_html__( 'The Primary Widget Area', 'mytheme'),
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => "</div>",
'before_title' => '<div class="sidebar-widget-heading"><h6>',
'after_title' => '</h6></div>',
));
这将注册您可以放置小部件的侧边栏。
然后在您的主题中使用dynamic_sidebar()
调用它:
dynamic_sidebar(esc_html__( 'Primary Sidebar', 'mytheme'));
如果您决定将register_sidebar
放在单独的文件中,为方便起见,您可以将其添加到sidebars.php
文件中。我通常将所有这些额外文件放在/inc
文件夹中,然后在我的functions.php
文件中调用它,如:
add_action('after_setup_theme', 'mytheme_after_setup_init');
if ( ! function_exists( 'mytheme_after_setup_init' ) ){
function mytheme_after_setup_init(){
/********* Register sidebars ***********/
require_once( get_template_directory(). 'inc/sidebars.php' );
}
}