获取WordPress侧边栏中第一个小部件的ID或顺序

时间:2010-12-16 13:57:02

标签: wordpress wordpress-theming

我正在使用WordPress。在我的网站的后端,有一个侧边栏。在这个侧边栏上,有n个小部件。我想在第一个小部件中添加一个CSS类,而不是其余的。

我该如何处理?

请帮忙!

3 个答案:

答案 0 :(得分:1)

您应该制作动态侧边栏,为小部件的类或ID添加编号。 这是关于它的好帖子: http://wordpress.org/support/topic/how-to-first-and-last-css-classes-for-sidebar-widgets

答案 1 :(得分:0)

你想要改变的是什么?你可以将html放到小部件中,这样你可以复制小部件的内容,如果它很简单 - 你也可以将ID-s和类放入html(并编辑主题的style.css文件中的css),或者你可以甚至直接使用style=""标签选项的css。如果它不是简单的那么它已经有ID和/或类 - 所以你应该使用firebug获取这些ID和类,然后在style.css中编辑样式。

答案 2 :(得分:0)

我对WordPress中的小部件钩子没有很多经验,但我相信这应该涵盖你所要求的内容。

<?php
if( !is_admin() ) {
    $sidebar_id = 'your-sidebar-id-here';
    $sidebars_array = wp_get_sidebars_widgets();
    if( isset( $sidebars_array[$sidebar_id] ) && ( !empty( $sidebars_array[$sidebar_id] ) ) ) {
        $first_widget = current( $sidebars_array[$sidebar_id] );
        add_action( 'widgets_init', 'so4461485_widget_custom', 10000 );
    }
}

function so4461485_widget_custom() {
    global $wp_registered_widgets, $first_widget;

    if( empty( $wp_registered_widgets ) )
        return;

    foreach( $wp_registered_widgets as $widget_id => $widget_data_array ) {
        if( $widget_id != $first_widget )
            continue;
        if( isset( $widget_data_array['classname'] ) )
            $wp_registered_widgets[$widget_id]['classname'] .= ' first_widget';
    }
}
?>

您只需要使用有效的侧边栏ID(即边栏注册时设置的ID)替换your-sidebar-id-here(代码的第3行)。

代码可以放在主题的functions.php中以方便使用。如果你在放置代码时遇到问题,请确保你没有嵌套PHP标签..(例如<?php <?php)。

编辑:接受的答案可能实际上解决了这个问题,所以请遵循这个建议。

希望有帮助...