Php wordpress计数小部件

Php wordpress计数小部件,php,wordpress,widget,Php,Wordpress,Widget,嗨,我想弄清楚,我们如何才能得到在给定侧边栏位置发布的小部件的数量 例如,我有一个称为实用工具的边栏,它是一个水平边栏。我希望这些小部件位置的宽度根据其中发布的小部件的数量进行同等调整 我想知道在给定的页面上,有多少小部件发布在这个侧边栏中,以便我可以根据它分配宽度类。当您构建侧边栏时,应该有一个包含侧边栏内容的列表;您正在对其进行迭代,以将这些项目添加到生成的页面中。只需使用此列表上的count()函数即可找到您正在显示的项目数 wp_get_sidebars_widgets() 将为您提供

嗨,我想弄清楚,我们如何才能得到在给定侧边栏位置发布的小部件的数量

例如,我有一个称为实用工具的边栏,它是一个水平边栏。我希望这些小部件位置的宽度根据其中发布的小部件的数量进行同等调整


我想知道在给定的页面上,有多少小部件发布在这个侧边栏中,以便我可以根据它分配宽度类。

当您构建侧边栏时,应该有一个包含侧边栏内容的列表;您正在对其进行迭代,以将这些项目添加到生成的页面中。只需使用此列表上的
count()
函数即可找到您正在显示的项目数

wp_get_sidebars_widgets()
将为您提供一个侧边栏数组和它们拥有的小部件,只需计算相应侧边栏的数组

例如:

$the_sidebars = wp_get_sidebars_widgets();
echo count( $the_sidebars['my-sidebar-id'] );
该ID是您在注册侧栏时声明的ID(因此请检查侧栏注册代码)

您还可以将其包装到函数中

function count_sidebar_widgets( $sidebar_id, $echo = true ) {
    $the_sidebars = wp_get_sidebars_widgets();
    if( !isset( $the_sidebars[$sidebar_id] ) )
        return __( 'Invalid sidebar ID' );
    if( $echo )
        echo count( $the_sidebars[$sidebar_id] );
    else
        return count( $the_sidebars[$sidebar_id] );
}
然后在需要获取计数时使用边栏ID调用它

count_sidebar_widgets( 'some-sidebar-id' );
或存储在变量中以供其他使用

$my_var = count_sidebar_widgets( 'some-sidebar-id', false );

希望这会有帮助。

这必须发生在服务器端,还是您也可以计算小部件并使用Javascript添加类名?谢谢,伙计,这真的很有帮助。@Vikram-不客气。。。对于未来基于WordPress的问题,请考虑向WPSE投稿:当然会按建议进行。对不起。事实上,我对Stackoverflow还不熟悉,还需要进一步探索。我自己也很新,不用担心,这只是一个建议(因为我经常去那里)…)