如果WordPress上有不同的侧边栏,则为不同的类

时间:2014-01-17 23:48:13

标签: php html css wordpress twitter-bootstrap

我很难弄清楚如何去做。

我为wordpress构建主题,主题基于bootstrap。如果不同的边栏处于活动状态,我需要有不同的fow类。

例如,我在页脚上有4个侧边栏。

footer1-sidebar
footer2-sidebar
footer3-sidebar
footer4-sidebar

所以,如果只有1个侧边栏活跃于这4个,那么无论我应该拥有哪个

<div class="row col-lg-12">
    footer1-sidebar
</div>

但如果2个侧边栏处于活动状态,我需要以某种方式将其划分为

<div class="row col-lg-6">
    footer2-sidebar
</div>
<div class="row col-lg-6">
    footer4-sidebar
</div>

依旧......

因此无论哪一个被激活1和3,或2和4或1,2和4,或全部4都有效。我需要以某种方式计算它们并将行分成行数的侧边栏。

修改

这是我目前在我主题上的footer-sidebar.php的代码。

<?php if ( is_active_sidebar( 'footer1-sidebar' ) || is_active_sidebar( 'footer2-sidebar' ) || is_active_sidebar( 'footer3-sidebar' ) || is_active_sidebar( 'footer4-sidebar' ) ) : ?>
<div class="footer-top">
    <div class="container">
        <div class="row">
            <div class="col-lg-3 col-md-3 col-sm-3">
                <?php if ( is_active_sidebar('footer1-sidebar') ) : ?>
                        <?php dynamic_sidebar('footer1-sidebar'); ?>
                <?php endif; ?>
            </div>
            <div class="col-lg-3 col-md-3 col-sm-3">
                <?php if ( is_active_sidebar('footer2-sidebar') ) : ?>
                        <?php dynamic_sidebar('footer2-sidebar'); ?>
                <?php endif; ?>
            </div>
            <div class="col-lg-3 col-md-3 col-sm-3">
                <?php if ( is_active_sidebar('footer3-sidebar') ) : ?>
                        <?php dynamic_sidebar('footer3-sidebar'); ?>
                <?php endif; ?>
            </div>
            <div class="col-lg-3 col-md-3 col-sm-3">
                <?php if ( is_active_sidebar('footer4-sidebar') ) : ?>
                        <?php dynamic_sidebar('footer4-sidebar'); ?>
                <?php endif; ?>
            </div>
        </div>
    </div><!-- /.container -->
</div>

现在问题是如果一个或两个侧边栏没有活动(没有小部件),它会在该列上留下空白空间。

1 个答案:

答案 0 :(得分:0)

我最终得到了一个计数器,它在每个活动的侧边栏上添加+1,最后将12行划分为计算的侧边栏数

<?php if ( is_active_sidebar( 'footer1-sidebar' ) || is_active_sidebar( 'footer2- sidebar' ) || is_active_sidebar( 'footer3-sidebar' ) || is_active_sidebar( 'footer4-sidebar' ) ) : ?>
<?php $count = 0;
if ( is_active_sidebar('footer1-sidebar') ) : $count++; endif; 
if ( is_active_sidebar('footer2-sidebar') ) : $count++; endif; 
if ( is_active_sidebar('footer3-sidebar') ) : $count++; endif; 
if ( is_active_sidebar('footer4-sidebar') ) : $count++; endif;
$row = 'col-lg-'. 12/$count .' col-md-'. 12/$count .' col-sm-'. 12/$count;
?>
<div class="footer-top">
    <div class="container">
        <div class="row">
            <?php if ( is_active_sidebar('footer1-sidebar') ) : ?>
                <div class="<?php echo $row ?>">
                    <?php dynamic_sidebar('footer1-sidebar'); ?>
                </div>
            <?php endif; ?>
            <?php if ( is_active_sidebar('footer2-sidebar') ) : ?>
                <div class="<?php echo $row ?>">
                    <?php dynamic_sidebar('footer2-sidebar'); ?>
                </div>
            <?php endif; ?>
            <?php if ( is_active_sidebar('footer3-sidebar') ) : ?>
                <div class="<?php echo $row ?>">
                    <?php dynamic_sidebar('footer3-sidebar'); ?>
                </div>
            <?php endif; ?>
            <?php if ( is_active_sidebar('footer4-sidebar') ) : ?>
                <div class="<?php echo $row ?>">
                    <?php dynamic_sidebar('footer4-sidebar'); ?>
                </div>
            <?php endif; ?>

        </div>
    </div><!-- /.container -->
</div>