if is within sidebar

时间:2014-03-03 作者:inTOWN

我有几个侧边栏(一个页面上不止一个),我想根据它们位于哪个侧边栏,为小部件设置不同的图像大小。

我试过了

if( ! dynamic_sidebar(\'my-sidebar\') ) :
以及

if ( is_active_sidebar( \'left-sidebar\' ) ) :
但这似乎只是检查侧栏是否存在(它们确实存在)。

如何获取:”if widget is located in sidebar A, give me this size, elseif widget is located in sidebar B, give me that size“?

1 个回复
SO网友:Sudeep K Rana

编辑:

在这里,我在函数中注册了2个侧栏。名称为sidebar1和sidebar2的php。

$sidebar_args = array(
    \'name\'          => __( \'sidebar1\', \'theme_text_domain\' ),
    \'id\'            => \'sidebar-1\',
    \'description\'   => \'\',
        \'class\'         => \'\',
    \'before_widget\' => \'<li id="%1$s" class="widget %2$s">\',
    \'after_widget\'  => \'</li>\',
    \'before_title\'  => \'<h2 class="widgettitle">\',
    \'after_title\'   => \'</h2>\' );

register_sidebar( $sidebar_args );


$sidebar_args_2 = array(
    \'name\'          => __( \'sidebar2\', \'theme_text_domain\' ),
    \'id\'            => \'sidebar-2\',
    \'description\'   => \'\',
        \'class\'         => \'\',
    \'before_widget\' => \'<li id="%1$s" class="widget %2$s">\',
    \'after_widget\'  => \'</li>\',
    \'before_title\'  => \'<h2 class="widgettitle">\',
    \'after_title\'   => \'</h2>\' );

register_sidebar( $sidebar_args_2 );
现在在theme的页面上检索他们的名字,如下所示。

<?php
    global $wp_registered_sidebars;
    $my_sidebars = $wp_registered_sidebars;

    foreach($my_sidebars as $my_sidebar){
        echo $my_sidebar[\'name\'];
    }

 ?>

结束

相关推荐

Widgets in the loop if active

我正在尝试将一个小部件作为“第一个帖子”,如果它处于活动状态。。然后让帖子继续。。它可以工作,但第一篇帖子消失了,第二篇帖子成为小部件后的第一行。。看不出我做错了什么。。正如你所看到的,我已经有一个小部件显示在帖子之间。<?php if (have_posts()) : ?> <?php $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1; ?> <?php $i=1;?>