(请温柔一点,我正从Joomla development过渡。)
我正在为这个客户端使用Twitter引导程序,我希望“底部”小部件位置能够“自动”为我的客户端工作,就像我在Joomla所习惯的那样,如果一个位置上发布了两个模块,那么将在每个div上添加适当的类以生成多个列。(例如:每个模块将被包装在“.col-md-6”中,如果有三列,那么将有三列,因为模块将被包装在“.col-md-4”等中。)
我知道我可以做一个bottom1、bottom2和bottom3的位置,然后这样做,但这会给我的客户带来额外的困惑。尤其是当我需要很多这样的职位时。
我知道Wordpress一定能做到这一点,但我似乎无法理解。(我会使用Joomla!但他们希望自己的网站有一个博客,还需要自定义内容类型。)任何帮助都将不胜感激。下面是我收集到的一些“片段”,但如何将它们放在一起却没有意义。非常感谢。
我有这个功能来注册我的小部件functions.php:
function my_widgets_init() {
register_sidebar( array(
\'name\' => \'bottom\',
\'id\' => \'bottom\',
\'before_widget\' => \'<div class="col-xs-6 col-md-4">\',
\'after_widget\' => \'</div>\',
\'before_title\' => \'<h3>\',
\'after_title\' => \'</h3>\',
));
}
add_action( \'widgets_init\', \'my_widgets_init\' );
这个函数在
functions.php:
function count_sidebar_widgets( $sidebar_id, $echo = true ) {
$num_widgets = wp_get_sidebars_widgets();
if( !isset( $num_widgets[$sidebar_id] ) )
return __( \'Invalid sidebar ID\' );
if( $echo )
echo count( $num_widgets[$sidebar_id] );
else
return count( $num_widgets[$sidebar_id] );
}
在中显示小部件的My html
index.php:
<?php if( is_active_sidebar(\'bottom\') ) { ?>
<section class="row">
<?php dynamic_sidebar(\'bottom\'); ?>
<?php count_sidebar_widgets( \'bottom\' ); ?>
</section>
<?php } ?>
感谢您的时间和关注。
SO网友:starter
我在这个网站上找到了一个以前在@Get number of widgets in sidebar
function cosmos_bottom_sidebar_params($params) {
$sidebar_id = $params[0][\'id\'];
if ( $sidebar_id == \'sidebar-bottom\' ) {
$total_widgets = wp_get_sidebars_widgets();
$sidebar_widgets = count($total_widgets[$sidebar_id]);
$params[0][\'before_widget\'] = str_replace(\'class="\', \'class="span\' . floor(12 / $sidebar_widgets) . \' \', $params[0][\'before_widget\']);
}
return $params;
}
add_filter(\'dynamic_sidebar_params\',\'cosmos_bottom_sidebar_params\');
这是我在年为Twitter Bootstrap 3修改过的代码
functions.php:
function my_widgets_init() {
register_sidebar( array(
\'name\' => \'bottom\',
\'id\' => \'bottom\',
\'before_widget\' => \'<div class="">\',
\'after_widget\' => \'</div>\',
\'before_title\' => \'<h3>\',
\'after_title\' => \'</h3>\',
));
}
add_action( \'widgets_init\', \'my_widgets_init\' );
// Dynamic Sidebar Positions
// Bottom
function cosmos_bottom_sidebar_params($params) {
$sidebar_id = $params[0][\'id\'];
if ( $sidebar_id == \'bottom\' ) {
$total_widgets = wp_get_sidebars_widgets();
$sidebar_widgets = count($total_widgets[$sidebar_id]);
$params[0][\'before_widget\'] = str_replace(\'class="\', \'class="col-md-\' . floor(12 / $sidebar_widgets) . \' \', $params[0][\'before_widget\']);
}
return $params;
}
add_filter(\'dynamic_sidebar_params\',\'cosmos_bottom_sidebar_params\');