活动边栏条件问题?

时间:2015-05-27 作者:katart

我有以下代码可以工作,但看起来不太好:

<?php 
    $col = \'one\';

    if( is_active_sidebar(\'footer\') && is_active_sidebar(\'footer-2\') && is_active_sidebar(\'footer-3\') ) :
        $col = \'three\';
    elseif( ( !is_active_sidebar(\'footer\') && is_active_sidebar(\'footer-2\') && is_active_sidebar(\'footer-3\') ) || ( is_active_sidebar(\'footer\') && !is_active_sidebar(\'footer-2\') && is_active_sidebar(\'footer-3\') ) || ( is_active_sidebar(\'footer\') && is_active_sidebar(\'footer-2\') && !is_active_sidebar(\'footer-3\') )  ) :
        $col = \'two\';
    elseif( !is_active_sidebar(\'footer\') && !is_active_sidebar(\'footer-2\') && is_active_sidebar(\'footer-3\') || ( is_active_sidebar(\'footer\') && !is_active_sidebar(\'footer-2\') && !is_active_sidebar(\'footer-3\') ) || ( !is_active_sidebar(\'footer\') && is_active_sidebar(\'footer-2\') && !is_active_sidebar(\'footer-3\') )  ) :
        $col = \'one\';
    endif; ?>

    <div class="<?php echo $col . \'-column\'; ?>">

        <?php if( is_active_sidebar(\'footer\') ) : ?><div class="footer-widgets footer-widgets-1"><?php dynamic_sidebar(\'footer\'); ?></div><?php endif; ?>
        <?php if( is_active_sidebar(\'footer-2\') ) : ?><div class="footer-widgets footer-widgets-2"><?php dynamic_sidebar(\'footer-2\'); ?></div><?php endif; ?>
        <?php if( is_active_sidebar(\'footer-3\') ) : ?><div class="footer-widgets footer-widgets-3"><?php dynamic_sidebar(\'footer-3\'); ?></div><?php endif; ?>

    </div>
有没有更好的方法来创建相同的逻辑?有什么想法吗?谢谢

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

如果我读对了,您所需要的只是一个活动侧栏的计数,所以:

$col = 0;
if(is_active_sidebar(\'footer\')) {
  $col++;
} 
if(is_active_sidebar(\'footer-2\')) {
  $col++;
} 
if( is_active_sidebar(\'footer-3\')) {
  $col++;
}?>

<div class="<?php echo \'column-\'.$col; ?>">
注意:我翻转了“column”类,使其以字母开头。数字不允许作为第一个字符。如果你想把它转换成“一”、“二”等,你应该可以自己动手做出来,而不需要太多的努力,但在我看来,当一个简单的结构变化使它变得不必要时,它就不值得这么做了。

结束

相关推荐

“Sidebar”模板中包含评论计数的最近帖子

我试过这个代码,但它完全破坏了我的网站。我想这是因为我在侧栏模板中WP\\u查询的神圣帖子上下文中做错了什么。请一些WP专家更正此代码好吗?<?php $args = array( \'orderby\' => \'date\' ,\'order\' => \'DESC\' ,\'showposts\'=>6 ); $my_query = new WP_Query($args);