边栏洞察和帮助请求

时间:2016-07-12 02:45:19

标签: php wordpress

我希望在我的索引,存档和帖子页面上实现相同的侧边栏,但我遇到了一些麻烦。我已经意识到我无法将此代码直接放入侧边栏文件中,我需要在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>

1 个答案:

答案 0 :(得分:0)

您在functions.phpfunctions.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' );

    }
}